决策转盘
输入你的选项,转动转盘随机选出一个。适合决定吃什么、从名单里抽人、分配任务,或者了结一场争论——随机性真正公平。
- 文件永不离开你的设备
- 免费,无需注册
- 无水印
- 加载后可离线使用
如何决策转盘
- 1
添加你的选项
每行一个——名字、餐食、任务,什么都行。
- 2
转动
转盘会使用密码学随机性随机选出一个结果。
- 3
移除或再转一次
可以选择移除中选者,这样就不会有人被抽中两次。
为什么中选者是在转盘转动之前就已经确定的
很多转盘工具的运作方式是从动画反向推导的:先把转盘旋转到某个视觉上好看的停止角度,再读出指针恰好落在哪一格作为结果。这听起来无害,但会引入一种微妙的统计偏差,因为把一个连续的旋转角度转换成一个离散的中选格子,涉及的浮点数运算无法在任意数量的选项之间被均匀整除——某些格子最终落在指针下的次数,会因为这种舍入过程本身的产物而略微多于其他格子,而不是因为转动本身存在任何真正的不公平。这个工具的运作方式正好相反:先用真正的密码学随机源选出中选者,转盘的旋转动画纯粹是一种视觉点缀,停在一个早已确定的结果上——这个动画从来不会影响哪个选项真正获胜。
为什么用拒绝采样,而不是简单的取模来选出中选者
把一个随机数变成"从 N 个选项里选一个"最常见的方式,是取一个随机整数,计算它除以 N 的余数——但除非 N 恰好能整除这个随机数所取自的那个范围,否则这会引入一种微小但真实的偏差,让某些选项比其他选项有着微微更高的中选概率,纯粹是这个除法无法整除所产生的一个副产物。拒绝采样完全避免了这个问题:它抽取一个随机值,如果这个值恰好落在那一小段分布不均匀的余数区间里,就丢弃它、重新抽取,如此反复,直到抽到一个落在这个范围里能被整除部分的值。每一个选项最终得到的概率,是精确相等,而不只是近似相等——这是一个真正的公平保证,而不是一个接近公平的近似值。
在有放回抽取和无放回抽取之间做选择
每次转动后都把全部选项留在池子里,适合重复出现也没关系、甚至是理想情况的场合——决定今晚吃什么,并不需要排除昨天的答案。而在每次转动后移除中选者,则是在模拟统计学家所说的无放回抽样,这是每个选项在一系列转动中最多只应该被选中一次时,公平且恰当的模式——在团队里分配一套固定的任务、从一份名单里抽出多位不同的获奖者,或者在一堂课上点名学生、且不在其他人都轮过一遍之前重复点到同一个名字。
在选项列表增长时保持标签可辨认
一个只有几个条目的转盘,能给每一个条目分配一块宽裕的扇形区域,有足够的空间放下完整的标签,而同样的转盘被分成五十个条目时,每一块扇形只能分到一小片圆环,塞进一个狭窄楔形里的文字很快就会缩小或被截断。大约五十个选项左右,是标签在一个常规尺寸的转盘上开始真正变得难以辨认的临界点——无论添加了多少条目,底层的随机选择始终保持同样公平,但视觉呈现是一份长列表值得留意的实际限制。
常见问题
结果真的是随机的吗?
是的。中选者是用 `crypto.getRandomValues` 选出的——和生成密码学密钥所用的是同一个来源——之后转盘动画才会旋转并停在这个结果上。很多转盘网站是先播放动画,再从最终角度读出结果,这会因为浮点数舍入而引入微妙的偏差。
每个选项的中选概率相等吗?
完全相等。这个抽取过程用的是拒绝采样,而不是简单的取模运算,所以没有任何一个选项会比另一个哪怕只高出一点点的概率——一个简单实现会引入的那种偏差虽小,但确实存在。
可以用这个来抽学生或团队成员吗?
可以,开启"移除中选者"选项,能让它变成一次不放回的公平抽取——每次转动都从尚未被选中的人里抽取。你输入的任何内容都不会被传输,所以一份班级名单会一直留在你自己的设备上。
最多能添加多少个选项?
实际上,大约到 50 个左右,转盘上的标签就会开始变得难以辨认。选项数量本身不会影响随机性。