免费转换器

随机数字 生成器

在浏览器中即时生成随机数字。自定义范围、数量和格式。免费、私密,无需向服务器发送任何数据。

生成

关于此工具

随机数生成器生成指定范围内的数字,且没有可预测的模式。常见的应用包括掷骰子、挑选彩票号码、统计工作抽样、生成测试数据以及任何需要公正挑选的环境。随机性的质量取决于来源:弱来源可以产生看起来随机但具有可检测模式的数字;即使是复杂的分析也无法预测强大的来源。

该生成器使用浏览器的加密安全随机源 (window.crypto.getRandomValues) 进行安全相关用途,并使用可选的 Math.random 回退功能用于速度比安全性更重要的娱乐用途。对于掷骰子、比赛选秀或任何影响结果的事情,安全来源是正确的选择。

输出范围和计数是可配置的。生成一个数字、一次生成多个数字或具有可选唯一性(无重复)的序列。输出格式包括纯数字、逗号分隔列表和每行一个文本。

为什么生成随机数

许多小决策受益于无偏见的随机选择。选择竞赛获胜者、决定尝试哪家餐厅、随机化测试用例的顺序、从数据集中采样行——所有这些都通过排除人为偏见的随机数生成器进行了改进。

统计和科学工作也取决于质量随机性。蒙特卡洛模拟、A/B 测试桶分配、测试输入随机化以及许多其他技术都需要统计上一致且对于所研究的系统而言不可预测的数字。

使用方法

设置范围和计数,生成。

  1. 设置范围: 最小值和最大值定义包含范围。两个终点都是可能的结果。
  2. 选择计数: 要生成的值的数量。一次性选择的单一值;批量生成采样或测试数据。
  3. 配置唯一性: 允许重复(每个选择都是独立的)或需要唯一值(无需替换的样本)。唯一值要求计数最多为范围大小。
  4. 生成: 浏览器生成值。显示格式:逗号分隔列表、每行一个或纯数字,具体取决于使用情况。

常见用例

技术细节

随机整数生成:从 crypto.getRandomValues 获取随机字节(或字),应用拒绝采样以避免模偏差,映射到所需范围。不带拒绝采样的普通模数对于未均匀划分到源范围的范围会产生轻微的偏差;拒绝抽样避免了这种情况。

无偏差统一整数生成:生成随机字节,如果 byte > Floor(256/range) × range,则拒绝并重试,否则返回 byte mod range。平均拒绝率最多为 50%,因此即使对于尴尬的范围,该算法实际上也很快。

Math.random 与 crypto.getRandomValues:Math.random 速度更快,但使用 xorshift 或类似的 PRNG,可以在给定足够输出的情况下进行预测。 crypto.getRandomValues 是加密安全的。对于非安全用途(骰子、随意选择),两者都可以;为了安全起见,请使用加密货币。

最佳实践

常见问题

我可以自定义生成的输出吗?
是的。该工具提供了各种自定义选项,可以根据您的特定需求定制输出。在生成之前调整设置,或使用不同的选项重新生成。
生成的内容可以免费使用吗?
是的。您使用此工具生成的所有内容都可以用于个人、教育或商业目的,没有任何限制或归属要求。
这个需要账号吗?
不需要。该工具无需注册、无需电子邮件、无需注册即可立即使用。只需打开页面并开始生成。
我的输入数据是否保密?
是的。所有处理都发生在您的浏览器中。您的输入数据和生成的输出永远不会发送到任何外部服务器。
我可以生成小数吗?
大多数生成器默认提供整数模式。小数模式生成范围内的浮点数;精度取决于底层随机源。
各个浏览器的随机源是否相同?
实现有所不同,但所有现代浏览器都通过 getRandomValues 提供加密安全的随机值。质量具有可比性。
我的数据上传了吗?
不会。生成发生在您的浏览器中。
我可以播种随机源以获得可重复性吗?
加密安全源不可播种(这会破坏安全性)。对于可重复的随机,请使用带有选定种子的单独 PRNG;不适合竞赛或安全用途。