Tool Detail

随机数生成器

按区间生成随机整数,支持不重复抽取,基于密码学安全随机数。

作者:VillaB · 更新:2026-06-20

使用说明

这个工具能做什么

在指定区间内生成随机整数,可选「不重复」抽取。使用浏览器的密码学安全随机数(crypto.getRandomValues + 拒绝采样),不是 Math.random(),分布均匀、可预测性低。适合抽奖、随机编号、抽样、课堂点名等。

怎么用

  1. 填最小值、最大值(含两端)、生成个数
  2. 需要每个数都不一样时勾选「不重复」
  3. 点「🎲 生成随机数」,结果显示在下方,并给出最小值、最大值、合计、平均值
  4. 「复制结果」拿到每行一个的列表

常见问题

是真正的随机吗?

是密码学安全伪随机(CSPRNG),不是真随机物理过程,但由操作系统熵池提供种子,无法通过观察历史结果预测下一个数,足够用于抽奖、抽样、密钥生成等场景。

为什么不用 Math.random()?

Math.random() 是普通伪随机,种子可预测,且实现上存在偏差,不适合有公平性要求的抽取。本工具用 crypto.getRandomValues 加拒绝采样,避免取模带来的分布偏差。

"不重复"是怎么抽的?

用 Fisher–Yates 部分洗牌:把区间内的整数当作池子,只洗前 N 个位置,因此抽出的 N 个数一定互不相同,且每种组合概率相等。所以「区间内只有 5 个数却要抽 10 个」会直接报错。

区间范围有限制吗?

不重复模式下区间最多 200 万个整数,单次最多生成 10000 个,避免一次性分配过大的内存卡住浏览器。需要海量不重复随机数建议用命令行或脚本。

能生成随机小数吗?

不能,只生成整数。需要小数可以生成整数后除以 10 的幂,但要注意精度。

结果会上传吗?

不会,随机数在本地生成。

返回工具中心