在任意范围内生成随机数
需要一个 1 到 100 之间的数字、六个彩票号码,还是一个包含 1,000 个随机值的测试列表?这款随机数生成器可以在您选择的任何范围内选取数字,并提供不重复、排序和小数位数选项。它使用您浏览器的加密安全随机性,因此结果不可预测且分布均匀,并且不会有任何数据发送到服务器。
功能特性
- 任意范围,包括负数和非常大的数值。
- 单个或多个:一键生成多达 10,000 个数字。
- 不重复模式,像从袋中抽球一样抽取数字,即使在巨大范围内也能高效运行。
- 支持小数,最多可达六位小数。
- 排序结果,按升序排列并以列表形式复制。
- 无偏差:采用拒绝采样法,确保范围内每个数值的出现概率完全相等。
常见用途
游戏和决策。 掷一个虚拟骰子(1–6)、决定谁先开始、随机选择一页或一个问题,或公平地解决争议。
抽奖和赠品活动。 为每个参与者分配一个号码,然后抽取不重复的中奖者。由于随机性来自安全源,任何人都无法预测或影响结果。
彩票选号。 为彩票生成一组唯一号码。随机选择可以避免生日等热门组合,这意味着您中奖后与他人分享奖金的可能性更小。
教育和研究。 从编号列表中随机选择样本、将参与者分配到不同小组,或创建练习题。
软件测试。 在特定范围内生成测试输入、ID 或样本数据集。
如何生成“公平”的随机数
一种简单的做法是取一个大的随机值,然后用它除以范围大小后的余数。当范围大小不能被随机源整除时,这种方法会轻微地偏向某些数字。本工具则会丢弃可能导致偏差的值并重新抽取(即“拒绝采样法”),因此对于 1–3 的范围,每个数字出现的概率都是严格的三分之一。
对于不重复的抽取,本工具执行部分 Fisher–Yates 洗牌算法:概念上,它会对整个范围进行洗牌并取前几个数字,但实际上并不会构建完整的列表,因此即使是从 1 到 1,000,000,000 中抽取 10 个数字也能瞬间完成。