随机数生成器 — 自定义取值范围
在你指定的范围内,公平地抽数。
在你的设备上运行 你粘贴的内容由你自己的浏览器处理,不会发送到任何服务器,离开页面后也不会留在任何地方。
一句话答案
随机数可以在浏览器里免费生成,范围任意,一次一个或一次一百个,可以是整数也可以是小数,可以允许重复也可以要求每个都不同。数值取自平台的密码学安全随机源,并采用拒绝采样,因此范围内每个数字的概率完全相等 —— 而不是用 Math.random 配上取余,那样既可预测又略有偏差。
一览
| 支持输入 | 无需输入,本工具直接生成 |
|---|---|
| 输出格式 | 随机数,每行一个 |
| 处理方式 | 浏览器本地 |
| 价格 | 免费,无次数限制 |
| 账号 | 无需注册 |
区分一次公平抽取和一次草率抽取的,是两个在结果里完全看不出来的细节。第一个是来源:这里用的是操作系统的密码学随机数发生器,而不是 Math.random —— 后者的序列可以从观察到的少数几个值推算出来。第二个是方法 —— 对一个随机整数取余,会让范围靠前的那一段概率稍高,而拒绝采样彻底消除了这种偏差。
选今晚看哪部电影,这两点都无所谓。但一旦有人把结果当成公平的 —— 抽奖、随机排序、从名单里抽样 —— 它们立刻就要紧了。
使用步骤
- 1
设定范围
下限和上限,两端都包含在内。默认是 1 到 100。
- 2
选择数量,以及是否允许重复
抽奖或者买彩票选号要的是“互不相同”;掷骰子要的是“允许重复”。
- 3
点击生成
数字每行一个显示出来。再点一次就是全新的一轮。
- 4
复制出去
把列表复制到剪贴板,或者下载成文本文件。
常见问题
用来抽奖够随机吗?
随机源是操作系统的密码学随机数发生器,采样也没有偏差,这是软件层面能做到的最好程度。但一次抽奖是否公平,还取决于它只抽一次并且有人见证 —— 那部分没有任何生成器帮得上忙。
能生成互不重复的数字吗?
可以,选“互不相同”。数量不能超过范围本身的大小,否则就没有数可抽了。
范围的两端都包含吗?
整数是包含的:1 到 6 既可能出 1 也可能出 6。小数是从下限取到上限但不含上限,这是连续区间的通常约定。
为什么不用 Math.random?
因为它是一个快速但非密码学的生成器,未来的输出可以从过去的输出推算出来;而且把它和取余结合起来会让结果有偏。对一件被当作公平抽取来呈现的事情来说,这两点都不可接受。
生成的数字会被记录下来吗?
不会。它们在你的标签页里产生,在你复制之前也只存在于那里。没有任何日志,也没有别人能看到它们。