iGotRandom Blog

不重复随机数生成器:完整指南

2026年7月17日 · iGotRandom

#随机数生成器#不重复随机数#随机抽取#随机工具
数字漏斗输出 1 到 4 的结果卡片,旁边是被划掉的重复数字 2

如果每个结果都必须对应不同的人、奖品或座位,请使用不重复随机数生成器。 打开随机数生成器,输入最小值、最大值和数量, 再开启不重复选项即可。

快速答案

  • 不重复抽取属于不放回抽样:一个数字入选后,会离开当次候选集合。
  • 区间中共有 N = max - min + 1 个数字。
  • 请求的数量不能超过 N
  • 排序只改变显示次序,不改变入选的数字。
  • 首次抽取前应公布排除项和重抽条件。

“不重复”是什么意思?

一个数字入选后,就不能在同一组结果中再次出现。例如,从 1 到 10 抽取三个数字得到 2, 7, 9,每个数字只出现一次。

不放回抽样会在抽取过程中防止同一数字再次入选;它不等于先生成含重复项的结果,再删除重复项。 事后去重可能使结果数量少于请求值,而且改变了流程。放回抽样则会把数字 放回候选池,因此像多次掷骰子一样允许重复。

最多能抽取多少个数字?

最小值和最大值都包含在区间内,所以区间大小为:

N = max - min + 1

本站不重复数量上限是 min(N, 100)。即使区间包含超过 100 个数字, 同一组结果最多也只能生成 100 个数字。

从 5 到 12 时,N = 12 - 5 + 1 = 8。从 0 到 9 时,N = 10; 0 也是候选数字。

如果请求的数量大于 N,就无法完成抽取。此时应扩大区间、减少数量,或者允许重复, 而不是默默返回数量不足的结果。

如何设置不重复抽取

  1. 打开随机数生成器
  2. 把第一个候选号码设为最小值,最后一个设为最大值。
  3. 输入所需结果数量,并选择不重复。
  4. 只有在抽取顺序不重要时才开启排序,然后生成结果。

例如,从 30 名已编号的参与者中选 5 人,设最小值为 1、最大值为 30、 数量为 5,就不会在同一组结果中重复选中一人。

排序会改变概率吗?

不会。排序只会把 18, 3, 11 显示为 3, 11, 18,不会重新抽取。 公布奖号时可以排序;如果顺序用于分配发言次序、分组优先级或座位,就不要排序。

什么时候应允许重复?

当每次尝试必须独立时,应允许重复,例如模拟十次掷骰子、下一轮允许同一号码 再次入选,或在每场活动开始时重置全部候选项。

如果要跨多轮排除已入选的人,请用随机名字转盘管理实际名单, 不要只凭记忆记录已排除的号码。

公平抽取需要预先确定的规则

先公布排除号码

在抽取前移除空座、未使用的票号和缺席者。如果区间中有很多空缺号,请列出 有效候选项并使用随机打乱列表,不要在抽取后临时废弃结果。

提前约定重抽条件

首次抽取前就应定义重抽理由,例如已确认的输入错误。为得到想要的结果而不断重抽, 会破坏随机流程。保持设置可见,方便所有人核对。

固定号码与人员的对应关系

抽取前完成抽奖券、团队成员或座位编号的分配。抽取后改号,可能让无偏的随机数 产生不公平的结果。

数字如何生成?

iGotRandom 使用浏览器的 crypto.getRandomValues。不重复模式采用虚拟的部分 Fisher–Yates, 只记录所需数量对应的位置。工具不会在内存中创建或打乱整个区间。同一区间内每个合格数字的 入选机会仍然相等。

输入和结果都在浏览器中处理,无需注册。

设置示例

场景最小值最大值数量不重复排序
从 30 张票中抽 5 名候选人1305
从 45 人中选 6 名队员1456
分配 20 个座位的顺序12020
模拟 10 次掷骰子1610

最后一例只有在允许重复时才成立:它会在 1 到 6 中进行十次独立抽取。

立即生成不重复随机数

选择有效的区间和数量,公布排除项与重抽规则,并确认结果顺序是否重要。不重复数量取 区间大小与 100 中的较小值。然后打开 随机数生成器开始抽取。如果需要直接抽取名字或条目,请使用 随机名字转盘