随机数生成器
用浏览器加密级随机源生成随机整数(可去重、可排序)、随机小数、随机字符串与列表随机抽取,并保留最近生成记录。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
使用 crypto.getRandomValues 并做拒绝采样,消除取模偏差
生成结果
点击生成按钮后显示结果
生成历史
还没有生成记录
这个工具能做什么
- 抽奖、点名、分房间时批量生成随机整数,默认用拒绝采样消除取模偏差,不是简单取余。
- 需要一组不重复的编号(座位号、试卷号)时打开「结果去重」,等价于不放回抽样,不会出现重复数字。
- 生成随机小数、随机字符串或从列表里抽几项,一次搞定,不用在几个工具之间来回切。
- 做压测或测试数据时需要临时口令、订单号之类的随机串,可选数字、大小写字母、十六进制或自定义字符集。
示例
输入
整数模式:最小值 1,最大值 100,数量 5,开启去重与升序排列
输出
5 个互不相同、按升序排列的 1–100 之间的整数
结果由浏览器 crypto.getRandomValues 提供随机源,因此每次都不一样;去重时要求数量不能超过可取值个数(这里是 100)。
常见问题
随机数够随机吗?会不会有偏?
随机源是浏览器的 crypto.getRandomValues,属于加密级随机。取值时用拒绝采样:把会造成取模偏置的高位区间直接丢掉重抽,所以每个值的概率完全相等,而不是简单的取余。
去重时数量能超过取值范围吗?
不能。例如在 1–10 里要 20 个不重复的数会直接报错,提示数量不能超过可取值个数。这是数学上不可能的请求,工具不会返回带重复的结果糊弄你。
结果会保存下来吗?
只保留最近几次生成记录在页面内存里,刷新就清空,也不写入 localStorage。所有计算都在本地完成,不发送任何网络请求。
自定义字符集为什么要去重?
因为字符集会按位置等概率抽取,如果同一个字符写了两遍,它被抽中的概率就会翻倍。所以自定义字符会先去掉空白与重复字符,避免这种隐形加权。
生成的数量有上限吗?
单次最多 10000 个;小数位数限制在 0–10 之间;取值范围最多支持 2^32 个整数。超出这些限制会给出对应的错误提示,而不是静默截断。
关键词:randomrandom numberrandom stringpassword generatorcryptodice随机数随机数生成器随机整数随机小数随机字符串去重抽签