这个工具能做什么
随机抽名 / 名单乱序工具可以读取你粘贴的任意内容——姓名、数字或普通文本——并从中随机抽取或重新打乱排序。无论是抽奖开奖、随机点名、分组排队、给歌单换顺序,还是单纯打乱原有的排列,它都能轻松搞定。每点击一次,都会生成一份全新的、完全均匀的随机结果。
使用方法
把你的条目粘贴到输入框中,用换行或逗号隔开即可(两种方式可以混用)。在 抽取数量 中填入你想抽出的条目个数。允许重复 选择 否 表示不放回抽取(每个条目最多出现一次);选择 是 则允许同一个条目被多次抽中。你还可以选择把结果按从小到大 / A-Z(或反向)排序,并挑选合适的复制格式,方便直接粘贴到表格或聊天消息里。
计算原理
设 \(N\) 为解析出的条目总数,\(k\) 为你需要抽取的个数。不允许重复时,工具会执行 Fisher-Yates 洗牌算法(\(i\) 从 \(N-1\) 递减到 1,将第 \(i\) 个条目与前面某个随机位置的条目交换),然后返回前 \(m = \min(k, N)\) 个条目;因此当 \(k\) 很大时,相当于直接把整份名单打乱。允许重复时,工具会进行 \(k\) 次独立抽取,每次随机选取一个下标 $$j = \lfloor \text{rand}() \times N \rfloor$$ 所以条目可能重复出现,\(k\) 也可以超过 \(N\)。排序采用自然比较器:看起来像数字的条目按数值大小比较,其余内容按不区分大小写的文本比较。
实例演示
名单:Liam、Ethan、Haley、34、25、16、A、B、C(\(N = 9\))。抽取数量 = 9,允许重复 = 否,排序 = 不排序。由于 \(k\) 等于 \(N\),这就是一次完整的洗牌,9 个条目会以 \(9! = 362{,}880\) 种等概率排列之一返回,例如:34、Ethan、B、A、25、C、Liam、16、Haley。
常见问题
为什么每次结果都不一样? 抽取本身就是随机的,重新运行自然会得到新的顺序或选择,这是正常设计。
如果我要抽的数量比名单里的条目还多怎么办? 不允许重复时,抽取数量会被限制在名单总数之内(你会得到整份打乱后的名单);允许重复时,则会精确返回你指定的数量。
逗号和空格是怎么处理的? 工具会按逗号和换行进行拆分,自动丢弃空条目(比如末尾多余的逗号),并去掉首尾空格,让结果更整洁。