随机数生成器
在任意最小值和最大值之间生成随机数,可选择是否重复,也可以切换为抛硬币、掷骰子或彩票机选。
默认为您所在地区。可切换以比较其他标准。
在最小值和最大值之间生成整数,可选择是否允许重复。
结果
—
随机数结果
点击“生成”抽取号码。
公平且私密
号码来自浏览器的密码学安全随机数生成器(crypto.getRandomValues),抽取时没有取模偏差,每个允许的值出现的概率都相同。数据不会发送到服务器。点击“生成”重新抽取。
关于本工具
原理:数字来自浏览器的密码学安全随机数生成器 crypto.getRandomValues,也就是生成加密密钥所用的来源。每个 32 位随机数通过拒绝采样转换到你设定的范围内:会让某些数字概率偏高的少数取值会被丢弃,因此从最小值到最大值的每个数字概率完全相同。不重复抽取使用 Fisher–Yates 洗牌算法。
彩票:在“标准”菜单中可选择双色球(红球 33 选 6 + 蓝球 16 选 1)、大乐透(前区 35 选 5 + 后区 12 选 2)以及 Powerball、EuroMillions 等 14 种彩票。每注都按官方玩法生成,并显示头奖概率,双色球为 17,721,088 分之一。
公式
每个值的概率 = 1 ÷(最大值 − 最小值 + 1)值 = 最小值 +(r mod n),n = 最大值 − 最小值 + 1;若 32 位随机数 r ≥ 2³² −(2³² mod n)则重新抽取不重复:对范围做部分 Fisher–Yates 洗牌彩票头奖概率 = C(主号码总数, 选号数) × C(附加号码总数, 选号数),C(n, k) = n! ÷ (k!(n − k)!)骰子:期望总点数 = 骰子数 ×(面数 + 1)÷ 2
计算方法
- 在“标准”菜单中选择模式:数字范围、抛硬币、掷骰子或某种彩票。
- 数字范围模式下输入最小值、最大值和需要的个数。
- 选择是否允许重复以及排序方式。
- 点击“生成”。每次点击都是全新的抽取。
- 可复制保存结果,或在概率行查看出现的可能性。
常见问题
这个随机数生成器是真随机吗?
它使用所有现代浏览器内置的密码学安全随机数生成器 crypto.getRandomValues。操作系统用硬件事件为其提供种子,其输出在实际中无法预测,远比 Math.random() 或表格软件的 RAND() 可靠。数字通过拒绝采样映射到你的范围,不会偏向较小的值。非常适合游戏、课堂点名和抽奖活动,但正规彩票和赌场必须使用经过认证的设备。
怎样抽取多个不重复的数字?
设置最小值和最大值,输入个数并选择“不重复”。这样每个数字只会出现一次,就像从摇奖机里取球;采用 Fisher–Yates 洗牌,所有可能的组合概率相同。个数不能超过范围大小:1 到 10 之间最多抽 10 个不同的数。选择“从小到大”可对结果排序。
怎样用它抽取中奖者?
给参与者从 1 到 N 编号(例如按评论顺序),把范围设为 1–N 并生成一个数。需要多名中奖者时增加个数并选择“不重复”,避免同一人重复中奖。为保证公开透明,可事先公布范围和方法,并在点击“生成”时录屏。
随机选号能提高中奖概率吗?
不能。每次开奖相互独立,无论是 1-2-3-4-5-6、生日还是机选,每种组合的概率完全相同;历史开奖结果也不会让某个号码“该出了”。机选唯一的实际好处是避开很多人都会选的组合,中头奖时与他人平分的可能性更小。请量力而行,理性购彩。
各彩票的头奖概率是多少?
按各彩票官方玩法计算的每注头奖概率:Powerball: 292,201,338 分之一;Mega Millions: 290,472,336 分之一;EuroMillions: 139,838,160 分之一;Eurojackpot: 139,838,160 分之一;Vikinglotto: 61,357,560 分之一;Latloto: 5,019,420 分之一;Lotto 6aus49: 139,838,160 分之一;Lotto: 45,057,474 分之一;SuperEnalotto: 622,614,630 分之一;La Primitiva: 139,838,160 分之一;Loto 6(ロト6): 6,096,454 分之一;Loto 7(ロト7): 10,295,472 分之一;Lotto 6/45: 8,145,060 分之一;双色球: 17,721,088 分之一;大乐透: 21,425,712 分之一;阿联酋彩票 Lucky Day: 8,835,372 分之一。小奖的概率要高得多,但任何选号方法都不会改变这些概率。
抛硬币和掷骰子公平吗?
公平。每次抛硬币正反面各 50%,骰子每一面的概率都是 1 ÷ 面数,也不存在实物骰子的制作误差。多个骰子的总点数概率并不相同:两个六面骰最常见的总点数是 7(36 种组合中有 6 种,约 16.7%),而 2 和 12 各只有 36 分之一。期望总点数 = 骰子数 ×(面数 + 1)÷ 2,两个骰子为 7。
来源
- MDN Web Docs: Crypto.getRandomValues()
- W3C Web Cryptography API
- Knuth, The Art of Computer Programming, Vol. 2, §3.4.2 (Fisher–Yates shuffle)
- Powerball: Prizes and Odds
- Mega Millions: How to Play
- Eurojackpot: Spielregeln
- LOTTO 6aus49: Gewinnwahrscheinlichkeiten
- Latvijas Loto: Latloto noteikumi
- Eesti Loto: Vikinglotto mängureeglid
- みずほ銀行:ロト6・ロト7
- 동행복권: 로또 6/45
- 中国福利彩票:双色球
- The UAE Lottery: How to play