随机数生成器
本随机数生成器使用密码学安全算法生成真正的随机数。设置最小值和最大值,选择生成数量,即时获得适用于抽奖、游戏、科研取样和决策的随机结果。
常见问题
这个随机数生成器是真正的随机数吗?
本生成器通过浏览器内置的 crypto.getRandomValues() 接口调用密码学安全伪随机数生成器(CSPRNG),该接口从时序抖动、系统噪声等硬件来源获取熵值。虽然严格意义上属于伪随机,但对于抽奖、游戏随机化、统计抽样等所有实际场景均完全适用。
如何生成不重复的随机数?
在生成器中开启"允许重复"开关(关闭状态即为不重复)。此选项可确保每个数字在输出中只出现一次,适用于彩票号码选取、随机分组或从列表中选取唯一项。注意:禁用重复时,生成数量不能超过范围大小。
随机数和伪随机数有什么区别?
真随机数来源于大气噪声、放射性衰变、热噪声等物理现象。伪随机数由数学算法生成,序列看似随机但本质上是确定性的。现代密码学安全伪随机数生成器(CSPRNG)虽然是伪随机,但以硬件真熵值为种子,在绝大多数应用中与真随机数实际上无法区分。
可以用来选彩票号码吗?
可以,本生成器适合娱乐性彩票号码选取。将范围设置为对应彩票的区间(例如 Powerball 主号码为 1-69),数量设置为需要摇出的球数,并开启"不重复"选项即可。注意:正式开奖由彩票机构使用经过认证的随机摇号设备进行,本工具不用于官方场合。
怎样生成 1 到 100 之间的随机数?
将最小值设为 1,最大值设为 100,然后点击生成。工具会在 1 到 100 之间产生均匀分布的随机整数,每个数字被选中的概率均为 1%。
随机数生成器有哪些用途?
常见用途包括:科研统计抽样、随机对照试验分组、游戏机制(掷骰子、洗牌)、彩票和抽奖、随机密码生成、A/B 测试分组、蒙特卡洛模拟,以及为数据科学生成练习数据集。
可以生成小数(浮点数)随机数吗?
本生成器目前生成指定范围内的随机整数。如需小数,可在更大范围内生成整数后再换算——例如生成 1-1000 的整数后除以 100,即可得到 0.01 到 10.00 之间保留两位小数的数值。
一次最多能生成多少个随机数?
单次最多可生成 100 个随机数。如需更大数据集,可分批生成。结果支持一键复制到剪贴板,方便粘贴到电子表格或其他应用中使用。
什么是骰子模拟器?
骰子模拟器用于模拟投掷一个或多个骰子。标准六面骰(d6)产生 1 到 6 的随机数。角色扮演游戏中还有各种类型的骰子:d4、d6、d8、d10、d12 和 d20。本生成器只需将范围设为 1-N(N 为面数)即可模拟任意骰子。
随机数生成器是免费的吗?
是的,本随机数生成器免费使用,无需注册。不限使用次数,生成的数字不会被存储或上传——所有计算均在您的浏览器本地完成。
随机数生成器:完整指南
目录
什么是随机数生成器? {#what-is}
**随机数生成器(RNG)**是一种在指定范围内产生不可预测数值的工具。RNG 分为两大类:真随机数生成器(TRNG)从物理现象中获取随机性,伪随机数生成器(PRNG)使用确定性数学算法生成看似随机的数列。
本生成器支持设置最小值和最大值、选择生成数量,并控制是否允许重复。它调用浏览器内置的密码学 API 提供高质量随机性,适用于游戏、抽奖、统计抽样、辅助决策等各种需要不可预测数值的场景。
如何生成随机数 {#how-to-generate}
按照以下步骤使用本工具生成随机数:
- 设置最小值——可生成的最小数字(例如 1)
- 设置最大值——可生成的最大数字(例如 100)
- 设置数量——要生成的随机数个数(1 到 100)
- 根据需要切换允许重复选项
- 点击生成按钮立即产生随机数
- 点击复制将结果复制到剪贴板,方便粘贴到电子表格或其他应用
- 在结果下方的历史记录区查看历次生成结果
常用随机数范围 {#common-ranges}
常见随机数使用场景快速参考:
| 使用场景 | 范围 | 示例 |
|---|---|---|
| 硬币投掷 | 1–2 | 正面或反面 |
| 掷骰子(d6) | 1–6 | 桌游 |
| 抽牌 | 1–52 | 牌组模拟 |
| 百分比 | 1–100 | 随机选取 |
| Powerball 彩票 | 1–69 | 彩票主号码 |
| PIN 码 | 0000–9999 | 安全验证 |
随机数生成器的类型 {#types}
随机数生成器主要分为三类,各有不同的取舍:
| 类型 | 来源 | 速度 | 适用场景 |
|---|---|---|---|
| TRNG(硬件真随机) | 物理现象(热噪声、放射性衰变) | 慢 | 高安全密码学、科学研究 |
| PRNG(软件伪随机) | 带种子值的数学算法 | 快 | 游戏、模拟、通用应用 |
| CSPRNG(密码学安全伪随机) | 以硬件熵值为种子的算法 | 适中 | 加密密钥、令牌、安全应用 |
工作原理 {#how-it-works}
允许重复时
每个数字独立生成——随机函数产生 0 到 1 之间的伪随机浮点数,再缩放到指定范围。由于每个数字相互独立,相同值可能多次出现。
result = floor(random() × (max - min + 1)) + min
不允许重复时
生成器先构建范围内所有整数的池,再使用 Fisher-Yates 算法打乱顺序,取前 N 个值。这样可确保每个结果唯一。禁用重复时,生成数量不能超过范围大小。
随机数的常见用途 {#use-cases}
- **游戏与娱乐:**掷骰子、抽牌、随机事件触发、桌游机制
- **彩票与抽奖:**从号码池中抽取唯一中奖号码
- **统计抽样:**为调查、实验或审计随机选取参与者
- **教育:**生成随机数学题、随机点名、题目乱序
- **密码学:**生成加密密钥、随机数(Nonce)、初始化向量和会话令牌
- **模拟:**蒙特卡洛模拟、天气建模、金融风险分析
- **A/B 测试:**将用户随机分配到对照组和实验组
- **辅助决策:**打破平局、随机排序或公平抽签
- **测试与开发:**生成随机测试数据、模糊测试或种子值
- **安全:**生成随机 PIN、验证码、临时密码或验证令牌
示例 {#examples}
示例 1:掷骰子
最小值设为 1,最大值设为 6,数量设为 1。每次生成模拟掷一次六面骰子。
示例 2:彩票号码
最小值设为 1,最大值设为 49,数量设为 6,并禁用重复。可生成 6 个不重复的彩票号码。
示例 3:随机抽样
最小值设为 1,最大值设为 1000,数量设为 50,并禁用重复。可从 1000 人中随机抽取 50 个不重复样本。
示例 4:硬币投掷
最小值设为 0,最大值设为 1,数量设为 1。结果 0 表示反面,1 表示正面。
使用技巧 {#tips}
- 生成单个随机数时,将数量保持为 1,显示效果最清晰
- 需要唯一选取(如彩票号码或抽奖)时,关闭允许重复选项
- 历史记录功能可让您对比多次生成的结果
- 禁用重复时,范围大小必须不小于请求的数量
- 使用复制按钮可快速将结果传输到电子表格或其他应用