Tools100% 本地
← 所有工具
随机数生成器
crypto.getRandomValues · 均匀 · 浏览器内
从
crypto.getRandomValues 中抽取密码学随机的整数或小数。本页使用拒绝采样,所以结果在任意范围内都均匀 — 没有取模偏差。可配置范围、数量、小数位数、排序方式、输出分隔符,以及"仅唯一"模式。
模式
范围
数量
唯一
排序
格式
Click Generate
点击复制—
为何这是"真随机"
浏览器暴露两种随机源:Math.random(),一个快速但每次运行确定的伪随机生成器;以及 crypto.getRandomValues(),一个由操作系统熵池播种的密码学安全 RNG — 与生成 TLS 会话密钥使用的源相同。本页对你抽取的每个值都使用后者。
避免取模偏差
简单的"由 RNG 生成整数"实现会做 rand() % n — 当 n 不能整除 RNG 字长时,这会让范围低端略受偏向。偏差很小但真实存在,在百万级抽样下可被轻易检测出来。
小数模式
当你请求小数时,本页从 crypto.getRandomValues 中读 53 位、得到 [0, 1) 的均匀值,再缩放到目标范围。最多可用 15 位精度 — 这是 IEEE-754 双精度浮点数的实际上限,也就是 JavaScript 的数值类型。
唯一模式
开启不允许重复后,本页对整数范围执行部分 Fisher–Yates 洗牌,这能保证抽到的唯一值均匀分布 — 这是无放回公平抽样的标准做法(也是洗牌或不重抽的抽奖所用算法)。
隐私
所有值都在本地生成。本页在最初的静态资源加载之后不发任何网络请求,也没有统计脚本。你的输入与生成的值都不会离开页面。