随机数生成背后的小秘密:真随机与伪随机
我们常常觉得随机数就是“完全无法预测的数字”。在计算机的世界里,这件事要分两层来看。真正的随机数需要借助物理世界的熵源,比如大气噪声、放射性衰变或者你晃动鼠标的轨迹,这些过程本质上无法被数学公式复现。然而,绝大多数网页工具和软件内置的随机数生成器,使用的都是伪随机数生成算法。伪随机是什么意思呢?简单说,算法会从一个初始的“种子”出发,通过精心设计的函数,产出一串看起来毫无规律、统计特性也接近真随机的数列。浏览器里常用的 Math.random() 就是典型的伪随机函数,它的种子通常来自当前时间的毫秒数和一些内部状态,足以应付一般的抽签、游戏掷骰子,但如果你需要做密码学级别的密钥生成,它的可预测性就会变成安全隐患。你在本工具中得到的数字,底层尽可能调用了密码学安全的随机源,让每个结果都更难被提前猜中,同时又保留了生成速度。对于日常的彩票模拟、课堂点名或者分组抽签,伪随机已经远远够用,但了解它的来源,能帮你更清醒地看待屏幕上跳出来的每一个数字。