首页文本与开发 › 随机抽签 / 随机数生成

随机抽签 / 随机数生成

两种模式:在指定区间生成随机整数,或从名单里随机抽取若干人,使用加密级随机源保证公平。

随机数是怎么产生的,公平吗

本工具优先调用浏览器的 crypto.getRandomValues 接口,它由操作系统的密码学安全随机数发生器提供,采集键盘、鼠标、硬件噪声等熵源,输出不可预测也无法复现,密码和密钥生成都依赖它。相比之下,Math.random 是伪随机算法,速度快但序列可被推算,因此只在浏览器不支持加密随机数时才作为兜底,并会在结果下方明确提示。

只拿随机数对区间长度取余会引入偏差:例如把 0 到 42 亿的随机数对 100 取余,前几个数字被取到的概率会略高。本工具采用“拒绝采样”,先算出能被区间长度整除的最大阈值,超过阈值的随机数直接丢弃重取,确保区间内每个整数概率完全相同。抽签模式用的是 Fisher–Yates 洗牌:从剩余元素中等概率取一个换到前面,重复若干次,数学上可以证明每种排列出现的概率相等。

两种模式的用法与注意事项

模式 A 生成随机整数,最小值和最大值都包含在内,可选择允许重复或不重复。抽奖号码、随机密码位数、实验分组编号、随机种子都可以用它;勾选“结果不重复”时,生成个数不能超过区间内整数的总数,例如 1 到 10 之间最多生成 10 个不重复的数。模式 B 从名单中抽签,每行一个名字,支持中文、英文、工号,自动忽略空行和首尾空格,抽出的人不会重复,适合年会抽奖、课堂点名、值日排班、随机分组。

使用时请注意两点:一是每次点击都是独立的随机过程,上一次的结果不会影响下一次,所以重复点击可能抽到同一个人,需要连续多轮不重复时请一次抽足人数;二是所有随机在你的浏览器本地完成,页面不保存也不上传名单和结果,刷新后即消失,正式抽奖建议截图或录屏留存证据。

常见问题

抽签结果真的公平吗?

使用操作系统提供的加密级随机源,并用拒绝采样消除取模偏差,每个人被抽中的概率完全相同,不受名单顺序影响。

为什么再抽一次又抽到了同一个人?

每次抽取都是独立事件,不会记忆上一轮结果。若需要多轮互不重复,请一次性抽取足够人数再分组。

名单有多少人上限?

理论上没有硬性上限,几万行也能瞬间完成。抽取人数不能超过名单人数。

结果会被保存吗?

不会。名单和结果只存在于当前页面,刷新即清空,正式场合请自行截图留档。