随机数生成器

生成具有各种分布的随机数

如何使用随机数生成器

  1. 1设置你所需范围的最小值与最大值。
  2. 2选择要生成的数字个数,以及是否允许重复。
  3. 3生成并复制结果,或重新抽取一组新数字。

随机数是如何产生的

结果在 [min, max] 闭区间内均匀抽取

区间内每个数字出现的概率相等;生成器以系统时钟为种子,因此连续抽取结果不同。

对于密码或抽奖等安全敏感场景,应使用密码学安全的生成器,而非通用生成器。

通用生成器多为线性同余或基于哈希的伪随机算法,输出由内部“种子”决定;同一种子会复现同一序列,因此可重复的科学实验需要固定种子以便他人复核。

密码学安全生成器(如系统的 /dev/urandom、CSPRNG)从不可预测的物理或系统噪声取熵,输出无法通过已见序列推算下一个值,适合令牌、盐值、密钥等场景。把两者混用会带来安全隐患或不可复现的实验结果。

使用场景是否允许重复范围建议推荐生成器类型
抽奖中奖者不允许参与者编号区间密码学安全生成器
骰子/牌局模拟不允许1–6 或固定牌池通用伪随机
问卷抽样允许受访者编号通用伪随机
生成密码/令牌不允许字符集长度密码学安全生成器
自动化测试用例允许覆盖边界值通用伪随机(可固定种子)

不同抽取场景的推荐设置

常见问题

数字会重复吗?

需要不重复的值时关闭「允许重复」;默认开启,适用于相互独立的抽取。

它是真正的随机吗?

它是伪随机,对游戏和抽样足够好,但不适用于加密。

如何公平地抽取中奖者?

把范围设为参与者编号并抽取一次;公开方法以保证过程透明。

如何让结果可复现?

在支持种子的生成器里固定一个种子值;同一种子、同一算法、同一范围必定得到相同的抽取序列。

生成的是小数还是整数?

本工具按整数范围抽取;若需 0–1 之间的小数,可把范围放大(如 0–1000)再除以 1000 还原到 0–1。

更多工具