怎么用
- 在左边输入或粘贴名单,每行一个名字。逗号、顿号也能分隔,所以从表格里复制来的一行名字也可以直接用。
- 转盘:点「转动转盘」,转盘减速后停在中签者上。勾选抽中后从名单移除,下一轮就不会再抽到同一个人。
- 抽取:选择抽几个人,以及是否允许重复。
- 打乱顺序:把整份名单随机排序,适合排定汇报顺序、值日表、朗读顺序。
- 分组:选择分几组,所有人打乱后依次分配,各组人数最多相差一人。
- 点全屏可以投到大屏幕上,历史记录里能看到之前的每一次结果。
随机是怎么保证的
转盘开始转之前,结果就已经确定
点下按钮的那一刻,中签者就已经从随机数里抽出来了,之后的动画只是把这一格转到指针下面。转盘看起来像是物理转动,但点击的快慢、动画的速度都不会影响谁中签。这也意味着,在慢吞吞的手机上和在高性能电脑上一样公平。
公平的随机源
随机数来自浏览器的密码学安全随机数生成器 crypto.getRandomValues,而不是 Math.random。把一个 32 位随机数变成 n 个人中的一个时,使用拒绝采样,保证不会因为取余让某些人的概率略高。打乱顺序使用 Fisher–Yates 算法,n 个人的 n! 种排列出现的概率完全相等。
公平性是经过测试的,而不是想当然:把三个名字打乱 60,000 次,六种可能的顺序各自出现约 10,000 次,卡方统计量低于 0.1% 显著性水平下的临界值。
分组
分组时先把名单打乱,再像发牌一样依次分配:第一个人到第 1 组,第二个人到第 2 组,依此类推。11 个人分 3 组,结果是 4、4、3 人。
示例
- 课堂点名:粘贴班级名单,转盘决定谁来回答问题;勾选「抽中后移除」,保证每个人都被点到一次之前不会有人被点两次。
- 年会抽奖:粘贴员工名单或抽奖券号,选「抽取」,把「抽几个」设为奖品数量,保持勾选「不重复」,全屏投到大屏幕上。
- 汇报顺序:用「打乱顺序」决定谁先上台。
- 分组讨论或运动分队:11 个人分 3 组,结果是 4 + 4 + 3。
在勾选「不重复」时,要抽的人数超过名单人数,会明确提示,而不会悄悄重复抽人。
局限
- 不支持权重。 每个名字的概率相同。想让某人有两次机会,就把名字写两遍,并取消「不重复」。
- 结果只保存在当前页面。 公开抽奖时,请当众展示屏幕,或者在关闭页面前复制历史记录。
- 同名算作两个人。 名单里两个「张伟」就是两次机会。
- 转盘能清楚显示几十个名字。 名单更长也能用,但文字会变小,几百人的抽奖用「抽取」更清楚。
常见问题
转盘真的随机吗?
是的。动画开始之前,中签者就已经由密码学随机数抽出,动画只是把结果展示出来。
怎么避免同一个人被抽两次?
勾选「抽中后从名单移除」,每次中签的人都会从名单里去掉,下一轮只在剩下的人里抽。
分组怎么保证人数均衡?
先打乱名单,再轮流分配,各组人数最多相差一人。
能投到大屏幕上用吗?
能。点「全屏」,转盘和结果会放大显示,适合教室和会场。
我输入的名单会被保存吗?
不会。名单只存在于当前页面,关闭就没了,也不会上传。