网上的随机数是怎么生成的?为什么抽奖结果值得信任
结论先行:靠谱的在线抽奖工具用的是操作系统提供的密码学级随机源(浏览器里叫 crypto.getRandomValues),它的输出连工具开发者自己都无法预测或操控,因为随机种子来自你设备上的鼠标轨迹、键盘时序、系统噪声等熵源,而不是写死在代码里的公式。你要判断一个抽奖工具可不可信,不用懂技术,看三点就行:是否声明使用系统级随机源、名单是否本地处理、过程是否可以全程围观。这三点都满足,结果就没有内定的技术空间。
官方规则核对:2026-10-29 · OpenAA 中文整理
随机分两种:公式推的和噪声采的
计算机里最常见的随机是伪随机:给一个起始数字(种子),用固定公式算出一长串看似杂乱的数。公式公开、种子固定,结果就能被完全复现——很多编程语言默认的 random 函数就是这种,适合做游戏和模拟,不适合抽奖。另一类是密码学级随机:随机数直接取自操作系统收集的真实世界噪声(学术上叫熵),包括按键间隔、鼠标移动、硬件中断时序等,每次取值都不可预测、不可复现。抽奖、验证码、加密密钥用的都应该是后一类。
浏览器里的 getRandomValues 是什么
所有现代浏览器都内置了一个接口:window.crypto.getRandomValues。它向操作系统要随机数,底层在 Windows、macOS、手机系统上都接的是系统级熵源,也是浏览器生成加密密钥用的同一条通道。网页工具调用这个接口抽奖,意味着随机结果由你的设备当场产生,网站服务器既看不见也改不了。这正是 random-picker 采用的方式:名单在本地、随机数取自本机系统,开发者没有预留任何「指定中奖人」的入口。判断其他工具时,页面或说明里提到 crypto 随机源的,可信度天然高一档。
为什么开发者也没法内定结果
内定需要两个条件之一:要么提前知道随机结果,要么在结果产生后能替换。密码学级随机把第一条堵死了——种子来自不可复现的设备噪声,开发者在自己电脑上跑一万次,也推不出你手机上那一次的结果。第二条靠流程堵:抽取过程在你自己的浏览器里当场完成并展示,服务器不参与,没有替换的环节。当然,如果工具把名单上传到服务器再「云端抽奖」,理论空间就出现了,这也是为什么要优先选明确声明本地处理、不上传名单的工具(隐私那篇有展开)。
普通人验证抽奖工具的土办法
不用看代码,三个动作就能试出深浅。第一,断网测试:先打开页面,再开飞行模式,名单粘贴和抽取还能正常完成的,说明确实是本地运行。第二,重复测试:拿 10 个名字抽 1 个人,连抽几十次记一下分布,如果某个名字一次都不出或次次都是他,就要留心;样本小有波动,但明显畸形分布值得警惕。第三,换设备交叉验证:在自己手机上先小规模试抽一轮,过程和结果展示方式与正式场合一致,心里就有底了。
如果想再较真一点,可以看看工具是否公开了技术说明:敢把自己使用的随机接口和处理方式写在页面上的工具,等于把底牌亮给用户看。相反,那些只强调「绝对公平」「官方认证」却对原理只字不提的宣传话术,反而要多留个心眼。公平是可以被描述、被验证的属性,不是一句口号;一个连自己怎么抽都说不清的工具,无论界面做得多炫,都不值得把正经活动托付给它。
常见问题
伪随机就一定不公平吗?
日常小活动用伪随机(如编程语言的 random 函数)结果分布其实也是均匀的,问题在于它可预测、可复现,不适合有利益的正式抽奖。涉及奖金奖品,用系统级随机源是更稳妥的选择。
抽奖结果能提前算出来吗?
用密码学级随机源的不能。它的种子来自设备实时噪声,每次抽取都独立生成,任何人事先都拿不到。这也是彩票机和赌场设备要用硬件随机源的原因。
同一个人连续中两次奖,是不是有黑幕?
不一定。假设每轮 1/50 的概率,连续中两次是 1/2500,单看很稀奇,但一场活动有很多轮、很多参与者,「某个人特别幸运」的概率被整体放大了。判断黑幕要看流程是否合规,而不是只看结果巧合。
手机和电脑抽出的结果会不一样吗?
每台设备的随机源独立,结果当然不同,这正是不可预测的体现。用哪台设备开奖都一样公平,重要场合建议用大家都能看到的那台投屏设备操作。
检查我的材料
→ 使用随机抽奖。按需要继续使用下面的相关工具。
官方来源与适用范围
本文为中文整理的生活指南,数字为估算或区间,具体以官方最新公布为准。
攻略看完了,去做一次模拟考试
到 dmv.openaa.com 选择你的州,刷中文题库、做模拟考试,考前检验一下。去刷 DMV 中文题库 →