随机数生成器
生成指定范围内的随机整数或小数,可批量生成且不重复。随机源使用浏览器加密安全随机数,全部在本地即时完成。
使用说明
- 输入最小值和最大值(支持负数与小数),再填写需要生成的数量(最多 10000 个)。
- 默认开启「不允许重复」,即每个结果互不相同;若允许相同结果出现,可勾选「允许重复」。
- 选择「整数」或「小数」;选择小数时还可以指定保留 1–6 位小数。
- 点击「生成」得到结果列表,可点「复制全部」一次性复制,或用「清空」重新开始。
常见问题
随机数是真正的随机吗?
为什么提示可生成的不重复数量不足?
一次最多能生成多少个?
使用步骤
- 输入最小值与最大值
在 Minimum 与 Maximum 输入上下限,支持负数与小数,例如负五到五或零到一。注意边界值本身也可能被抽中。
- 选择生成数量与数字类型
Count 填一到一万之间的数量。Number type 选 Integer 生成整数,选 Decimal 时会多出一个精度下拉框,可挑一到六位小数。
- 决定是否允许重复
默认每个结果互不相同。勾选 Allow duplicates 后同一数值可多次出现,适合模拟有放回的重复抽样。
- 生成结果列表并批量复制
点击 Generate 输出结果列表,点 Copy all 一次复制全部数值,可直接粘贴进表格或代码。点 Clear 清空重来。
- 处理数量不足提示
若提示唯一值不足,说明区间内不重复的组合少于请求数量。放宽范围、降低小数精度或改为允许重复即可解决。
工具详细介绍
随机数生成器在指定范围内抽取整数或小数,单批最多一万个,默认结果互不重复,也可勾选允许重复。数值来自浏览器的加密安全随机源 crypto.getRandomValues()。它比普通 Math.random() 更难预测。抽奖、抽样与造测试数据都够用,所有计算在本地设备上即时完成。
适合课堂随机点名、活动抽奖、抽样调查、桌面游戏与给测试造数据。设好范围和数量一键出结果,省去写脚本的麻烦。小数模式可指定一到六位小数精度,模拟测量数据或概率样本时特别方便。
原理与背景
把随机整数映射到任意区间有个经典陷阱:32 位随机整数对区间大小取模时会有偏差。若 2 的 32 次方不能被区间整除,排在前面的值概率就会略高。标准解法是拒绝采样,把落在多余区间的样本丢掉重抽,让每个值的概率严格相等,本工具采用的就是这种做法。抽奖、点名这类要当众交代结果的场合,等概率是能复核的硬要求,普通伪随机数与有偏映射都经不起这一问。自娱自乐时偏差小到无感,涉及奖项分配就必须较真。
「不允许重复」对应统计里的不放回抽样:每抽一个,候选池就少一个。请求量越接近区间容量,剩余候选越稀疏,唯一值不足的提示就来自这里。勾选允许重复则切换为放回抽样,模拟掷骰子或可重复试验才合理。小数模式在指定精度下做同样的去重:两位小数时 0.10 与 0.1 是同一个值,精度每提高一位,可用空间大约扩大十倍。遇到不足提示时先算容量,再决定调精度还是允许重复。
典型使用场景
- 课堂点名与随机分组
把学号或座位号设为区间,一次抽出不重复的一组,用于课堂问答或分组。每人被抽中的概率严格相等,省去手工抽签排序,也堵住「老师偏心」的议论。
- 活动抽奖当众开奖
从参与者编号区间抽出中奖名单,关闭允许重复保证一人只中一次。全程本地计算,编号与结果的对应关系可以当场复核,经得起参与者质疑,开奖过程也更快。
- 造测试数据与抽样
给单元测试造边界用例时,用零到一的两位小数模拟概率,用负数区间模拟异常输入。调查的受访者编号也能批量生成,无需再写一次性脚本,口径还能当场调整。
使用技巧
- 不重复模式下请求数不能超过区间内可用值的个数,否则会提示数量不足。
- 小数去重按所选精度判断:两位小数时 0.10 与 0.1 视为同一结果。
- 单批上限 10000 个。需要更多时调整范围,或再点一次 Generate 分批获取。
注意事项
- 边界值也会被抽中
抽出的号码包含最小值与最大值本身。抽奖时若这些编号是预留或作废的,先把区间收窄到有效编号范围,工具不会自动剔除,范围要自己设准。
- 精度决定可用容量
两位小数在零到一区间只有一百零一个不同值,请求两百个不重复样本必然失败。遇到不足提示先算区间容量,再决定放宽精度还是允许重复,两分钟就能定位原因。
- 加密随机不可复现
随机源没有公开种子,同一批结果事后无法重放。需要可复现的实验数据时改用带固定种子的工具,并当场把这里的结果复制保存留档,别等清空才想起。