首页 随机数生成器

随机数生成器

在自定义范围内生成一个或多个随机整数 — 全程在浏览器中完成。

选项

结果

什么是随机数?

随机数是由一个事先无法可靠预测其结果的过程所产生的值。在计算中,随机数从一个范围内抽取——例如 1 到 100 之间的整数——该范围内的每个值出现的概率应当相等。随机数支撑着从音乐播放列表的随机播放到互联网流量加密的一切,因此随机性的质量在实践中至关重要。

本生成器在你定义的范围(最小值和最大值之间,含两端)内产生整数。你可以要求单个数字或一次生成多个,并可选择要求一批数字中每个都是唯一的。随机性来自浏览器的加密随机源,它远比大多数编程语言中的基础随机函数要强。

真随机与伪随机

计算中有两种随机性。真随机数从不可预测的物理现象中提取,如电子热噪声、放射性衰变或用户击键的时间。它们真正不可预测,但采集速度慢。伪随机数由确定性算法从种子值产生:给定相同的种子,总是产生相同的序列。一个优秀的伪随机生成器能通过所有随机性的统计检验,但原则上只要种子已知就可预测。

现代浏览器通过加密安全的伪随机生成器(CSPRNG)将二者结合。它从操作系统收集的熵——硬件事件、中断时序等物理来源——中获取种子,然后将种子扩展成一长串在统计上与真随机无法区分、且在不知道种子时无法预测的数字流。本工具使用的 crypto.getRandomValues 正是这样的 CSPRNG,因此输出适合生成令牌、抽签或为模拟设定种子等安全敏感用途。

何时使用随机数生成器

随机数在日常任务中出人意料地常见。最常见的包括:

  • 游戏与抽奖。公平透明地选出获胜者、掷骰子、抽签或打乱玩家顺序。
  • 抽样与调查。从电子表格中随机选取一部分行进行无偏审计或调查。
  • 统计教学。即时生成样本数据集,让学生直观看到分布和方差。
  • 做决定。打破平局、在选项中选择,或在你无法决定时随机挑一家餐厅。
  • 测试与质检。向函数或表单输入随机数据,以探测边界情况和差一错误。
  • 令牌与一次性验证码。为验证流程或临时访问生成短数字码。

任何需要公平性、不可预测性或无偏抽样的地方,优秀的随机数生成器都是正确之选。

随机性与安全

当涉及安全时,并非所有随机数都一样。弱生成器——如许多语言中的普通 Math.random()——用于贪吃蛇游戏没问题,但完全不适合生成密码、会话令牌或抽奖结果,因为它的输出有时可以在观察足够多的值后被预测。攻击者曾利用可预测的随机数生成器攻破真实系统。

这就是为什么本生成器使用浏览器的加密随机源(crypto.getRandomValues),而不是基础随机函数。加密随机性的设计使得即使观察了数千个输出,攻击者也难以预测下一个值。对于任何必须抵抗猜测的东西——访问码、抽奖结果、安全令牌——始终使用加密源,绝不依赖普通伪随机生成器。

如何生成随机数

使用本工具生成随机数只需一秒,且全程在你的浏览器中完成。无需上传、无需注册、无需安装。按以下三步操作:

  1. 设置范围和数量。输入最小值和最大值,选择要多少个数字,如果不允许重复则勾选"仅唯一值"。
  2. 生成。点击"生成"以产生数字。每次点击都从加密源抽取全新的随机值。
  3. 复制。点击"复制"将数字复制到剪贴板,或点击"清空"清除输出重新开始。

由于每个数字都在你自己的设备上通过 JavaScript 本地生成,并使用浏览器的加密随机源,因此你的值永远不会离开浏览器。这使得本工具完全私密,可安全用于抽奖、令牌和任何安全敏感用途。

这个随机数生成器免费吗?

是的,完全免费,无需注册、无水印,除设备内存外没有其他限制。

生成的数字是真正的随机吗?

本工具使用浏览器的加密安全随机源(crypto.getRandomValues),它由操作系统熵作为种子。输出适合抽奖、令牌和其他安全敏感用途。

我的数字会被上传吗?

不会。所有生成过程均在本地完成。你的数字永远不会离开浏览器,因此可安全用于任何用途。

如果勾选了"仅唯一值"但范围小于数量会怎样?

本工具会返回范围内允许的唯一数字,然后停止,因为无法抽取比范围更多的唯一值。请扩大范围或减少数量以获取完整批次。