🎲 随机数生成器

抽签、抽奖、抽样都用得上,基于密码学级随机源,本地生成。

如何使用随机数生成器

设定范围与数量,生成随机数字或抽签结果,支持不重复抽取模式。

计算原理与公式

网页端的"随机"分两类:本工具的普通随机使用 Math.random(),适合抽签、抽样、排序打乱等日常用途;密码学安全随机使用 crypto.getRandomValues(),用于生成密码、令牌等安全敏感场景。两者的可预测性完全不同。

适用场景

活动抽签、随机抽样调查、决定谁先来、列表随机排序、生成测试数据。

计算示例

两种随机数生成方式的可预测性对比:

特性Math.random()crypto.getRandomValues()
算法xorshift 类,种子可推CSPRNG,不可预测
适合抽签、抽样、打乱密码、令牌、密钥
能否用于密码❌ 不可✅ 可以

计算局限与假设

需要保证公平(如抽奖)时,建议用「不重复抽取」模式,避免重复中奖。若用于正式抽奖并涉及金钱价值,建议记录随机种子以便审计。本工具的随机结果不满足密码学强度要求,生成密码请使用密码生成器。

常见问题

随机数抽奖真的公平吗?

统计意义上公平:每个数字被抽中概率严格相等。若用于有奖金的公开抽奖,建议把规则、范围、生成过程录屏留档,争议时能自证清白。

连续抽到同一个数,是不是坏了?

不是。真正的随机就包含「看起来不随机」的片段——10 次里出现两次相同数字的概率约 43%。如果连续多次生成的序列永远不重复,反而说明是伪随机坏了。

可以用来选学号/抽签吗?

可以,课堂抽签、分组、抽顺序都常用。注意把「范围、个数、是否可重复」三个参数在抽取前告诉所有人,程序公平一半来自算法,另一半来自规则透明。