随机数生成器
按范围批量生成随机数
这个工具能做什么
这是一个在浏览器里运行的随机数生成器,核心动作很直接:给定一个数值区间和需要的个数,一次性产出若干个随机整数或随机小数。它解决的是手动想数又慢又不匀的问题——不管是抽奖要抽序号、造测试数据想要一批互不相同的样本,还是掷骰模拟需要 1 到 6 的点数,人脑挑出来的数字往往带偏好、也难保证真正随机。设定最小值、最大值和数量,选整数还是小数,点一下就能批量拿到结果,整数默认是闭区间(含两端),勾选不重复还能保证这一批整数彼此不同。
底层依赖的是 JavaScript 的 Math.random(),它返回 [0, 1) 区间内近似均匀分布的浮点数,属于伪随机数(PRNG),由引擎内部算法(如 V8 的 xorshift128+)根据内部状态推演得出,速度快但无法预设种子。生成指定范围的整数时,用 Math.floor(min + Math.random() * (max - min + 1)) 把 [0,1) 线性映射到目标区间再向下取整,这样才能等概率地覆盖到最大值本身;小数则保留映射后的浮点结果或按需截断精度。不重复模式在整数上通过去重(Set)或洗牌(Fisher-Yates)实现,因此要求的数量不能超过区间内可取整数的总数,否则凑不齐互异的值。全部计算都在浏览器本地完成,参数和结果不会上传到服务器。
最常见的用法是抽奖和随机取样。比如年会抽奖,参与者编号是 1 到 500,把最小值设 1、最大值设 500、数量设 10 并勾选不重复,就能一次抽出 10 个互不相同的中奖号;再比如从一张有 2000 行的数据表里随机抽 50 行做人工复核,生成 50 个不重复行号即可精准定位。造测试数据也很省事——给接口做压测要灌入一批年龄、金额或经纬度,直接生成对应范围的随机整数或小数批量填入,比手写更快,分布也更贴近真实取值。
需要提醒的是,Math.random() 产出的是伪随机数,统计上足够均匀,但不具备密码学安全性,不适合生成密钥、令牌、验证码等安全敏感的值——那类场景应使用 crypto.getRandomValues() 这样的加密安全随机源。另外要注意闭区间差异:整数默认包含最大值,若编号从 0 起算或需要左闭右开,记得相应调整边界。小数结果受 IEEE 754 双精度浮点限制,位数多时末尾可能出现精度尾差,对精度敏感时应自行四舍五入到所需位数。
随机数生成器是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“随机数生成”、“随机数”、“随机整数”,说的都是这个。
常见使用场景
- 年会抽奖从参与编号里抽出多个不重复中奖号
- 从上千行数据表随机抽取若干行做人工复核
- 给接口压测批量造年龄、金额等测试数据
- 模拟掷骰或抽牌生成 1 到 6 的随机点数
- 随机分组时给成员分配互不相同的序号
使用方法
- 把内容粘贴到输入框(生成类工具直接设置选项)。
- 按需要选择选项,点操作按钮。
- 结果出现在下方,点「复制结果」即可带走。