要做什么
示例
可以从 Excel 整列复制。想按性别、班级均衡分组,就在姓名后面用 Tab 或逗号加一列,例如“张三,男”或“李四,女,2班”。
分组方式
奖项(按抽取顺序)
填了种子,同样的名单和种子永远得到同样的结果。可以先当众公布种子(比如当天日期加某个数字),再抽,事后任何人都能复核没有作弊。
公平性说明
- 不填种子时,随机数来自浏览器的密码学随机数生成器(crypto.getRandomValues),和网银、密码学软件用的是同一类随机源。
- 填了种子时,用 cyrb128 把种子文字变成 128 位初值,再用 SFC32 生成随机数;结果完全由“种子 + 名单顺序”决定。
- 洗牌用 Fisher–Yates 算法,取随机整数时丢弃会造成偏差的尾部数值,每种排列出现的机会完全相同。
- 均衡分组:先把同一类(如男生、女生)各自打乱,再依次轮流发到各组,所以每组人数最多差 1 人,每一类人在各组也最多差 1 人。
结果