上个月帮朋友做一个年会抽奖,奖品是五台手机。我在 Excel 里用 RANDBETWEEN 生成了五个数字,发给主持人。结果现场有两个人同时喊“我是 37 号”——Excel 的随机数在刷新时会变,我忘记粘贴为值了。
那次之后,我开始用在线随机数生成工具(https://suijishu.quan77.cn/)做这类事。它省下的具体动作是:不用再手动锁定单元格、不用检查重复、不用纠结浮点精度。一个页面,选好参数,点一下,结果固定下来,截图就能用。
最快出结果的路径是怎样的
打开页面后,不要被四个选项吓到。如果你只是要一个 1 到 100 之间的整数,只需要做三件事:
- 在“区间”框里填 1 和 100
- 把“生成个数”改成 1
- 点“生成”
十秒内拿到结果。不需要登录,不需要注册,也没有广告弹窗。
如果你需要多个不重复的数字,比如从 100 个人里抽 5 个,关键一步是勾上“不重复”复选框。这时候工具会自动校验:如果生成个数大于区间范围,它会提示错误,不会硬生成导致死循环。
浮点数的用法也类似,区别在于你可以在“小数位数”里指定精度。我试过生成 0 到 1 之间的随机数,保留三位小数,结果和 Python 的 random.uniform 几乎一致(差了万分之二,属于浮点运算正常误差)。
批量生成时,工具会把所有结果列在一个表格里,每行一个数字,方便复制到 Excel 或数据库。
三个真实场景分别怎么用
场景一:抽奖时如何避免重复中奖
假设你要从 200 个工号里抽 10 个三等奖。在工具里设区间为 1-200,生成个数为 10,勾上“不重复”。生成的数字就是 10 个不同的工号。
注意:如果你需要抽多轮(先三等奖,再二等奖),每轮结束后要重新生成,因为工具不会记录历史。我的做法是每轮截图保存结果,下一轮重新设区间——比如三等奖抽完后,剩下的 190 个工号重新编号,再生成。
场景二:测试数据填充时如何生成浮点数范围
做性能测试时,需要模拟用户年龄在 18 到 65 岁之间的分布。设区间 18-65,小数位数 1,生成 1000 个。工具大约半秒返回结果。
我对比过,这批数据的均值为 41.3,标准差接近 13.5,和理论上均匀分布的期望值(41.5)非常接近。对于非严格统计测试,精度足够。
场景三:批量生成验证码时如何控制格式
如果验证码需要六位数字,区间设为 100000-999999,生成个数随意。工具不会生成 000001 这种带前导零的数字——这是一个短板,如果你需要固定位数,生成后要在 Excel 里用 TEXT 函数补零。
什么时候别用它
诚实地说,这个工具不适合以下情况:
- 密码学或安全场景。它用的是浏览器端的 Math.random,不是加密安全的伪随机数生成器(CSPRNG)。不要用它生成密钥、Token 或任何需要防预测的随机数。
- 需要真随机数。如果你在做蒙特卡洛模拟或物理实验,建议用硬件随机数生成器或专门的随机数 API。
- 需要带前导零的数字。如前面所说,它不会自动补零。
- 生成个数超过 10000。我试过生成 50000 个,页面卡了约 8 秒才返回结果。对于超大数量,建议用 Python 的 numpy 或数据库的 RAND 函数。
另外,工具没有历史记录功能。如果你需要保存每次生成的参数和结果,建议自己记在文档里。
搭配哪些工具更顺手
我常用它配合 JSON 格式化工具 一起用:先批量生成随机数作为测试数据,然后粘贴到 JSON 里格式化,调整结构。两者都是轻量在线工具,不需要下载任何软件。
如果你在做数据清洗,也可以把随机数生成的结果导出到 CSV,再用在线 CSV 工具去重或排序。
总的来说,这个工具适合那些“点一下就拿到结果,用完就走”的场景。它不完美,但比 Excel 随机数更可靠,比写脚本更省时间。