首页 > 工具箱 > 抽奖与随机点名

抽奖与随机点名

年会抽奖、课堂点名、周末谁去买咖啡——把名单贴进来转一下就有结果。随机数走浏览器的 crypto.getRandomValues,不是 Math.random,洗牌用的也是标准的 Fisher–Yates,每个人被抽到的概率是真正均等的。名单只存在你这台设备上。

说明

随机到底够不够随机
本页优先用 crypto.getRandomValues,这是浏览器提供的密码学安全随机源,由操作系统的熵池驱动;取范围内整数时用了拒绝采样(超出整倍区间的值直接丢弃重取),避免简单取模带来的偏斜。洗牌用 Fisher–Yates 算法,每种排列出现的概率严格相等。老浏览器没有 crypto 时才退回 Math.random,会在结果区标出来。
「不放回」是什么意思
抽中的人会从名单里移走,下一轮不再参与——发一等奖二等奖三等奖时用这个。「放回」则是每轮都从完整名单里抽,同一个人可能连中,适合课堂点名这种不需要排他的场景。点「重置名单」可以把移走的人放回去。
转盘的指针指哪
指针固定在正上方(12 点方向),转盘停下时落在指针下的扇区就是结果。结果是先抽好再倒推转盘该停在什么角度,所以动画只是表现形式,不影响概率——每个扇区的面积相同,视觉上也是公平的。名单超过 24 个时扇区上只写序号,不然字挤成一团。
随机分组怎么分
先整体洗牌,再按顺序发牌式分配,所以人数除不尽时各组只会差 1 个人,不会出现一组 8 人一组 2 人。选「每组 N 人」时最后一组可能不满。
名单存在哪
存在浏览器的 localStorage 里,只在这台设备的这个浏览器上,不会上传。换设备、清浏览器数据或用隐私模式都会没有。不想留痕就把「名单保存」关掉。
相关工具
测试数据生成密码生成24点计算多通道计时器
已复制