抽奖、抽签、生成测试数据都要随机数。计算机里的随机数其实不随机?本文讲清楚。
计算机用数学公式生成随机序列,初始值叫种子。相同种子产生相同序列,所以叫伪随机。多数场景够用,但可预测。
硬件噪声、鼠标移动轨迹、放射性衰变等物理过程产生真随机。加密密钥必须用真随机(密码学安全随机数生成器)。
普通抽奖用伪随机即可;涉及公平性质疑的活动,建议用第三方平台并公开随机种子,让参与者可验证。
生成指定范围的随机整数要注意边界包含;抽奖不重复中奖需开启去重模式,否则同一个人可能被抽中两次。
使用了固定种子,刷新页面会重置;换随机种子即可。
普通伪随机在已知种子和算法时可预测,安全场景禁用。
RAND 每次重算都变,需固定时先复制再粘贴为值。