随机分组生成器

全球通用工具

粘贴一份名单,选择怎么分,本页就抽好小组。结果是一张可复制、可下载的分组表,顶部打印着产生它的种子:把那个数字粘回表单,下周在另一台电脑上会得到同样的小组。

这里什么都能放——名字、成对的人、工单号、任务。从电子表格粘贴进来的清单可以直接用;制表符和逗号都能分隔名字。

“组数”会尽可能平均地摊掉余数;“每组人数”只生成完整的组,并点出剩下的是谁。

组数,或者每组人数——取决于旁边那个设置。排不进去的人会被点名,而不是被丢掉。

盲抽对名单的每一种顺序一视同仁。蛇形轮转适用于已经排好序的名单:它往下发再往上发,所以第一个签和最后一个签会落在同一组。

每行一对,形式如 “Alex, Beth”。抽取会重试直到这些对子被分开——最多 400 次——失败时,分不开的对子会被点名,而不是被悄悄忽略。

同样的种子在任何机器上都给出同样的分组。留空时每次点击“重新抽取”都从时钟取种子;用过的种子会打印在表旁,粘回去就能冻结那一次抽取。

留空则两个文件为 “team-draw.txt” 和 “team-draw.csv”。

边输入边更新。所有计算都在你的浏览器里完成,数据不会离开本机。

已抽出队伍

3

11 个名字分成 4 + 4 + 3。种子 4266519976,页面运行时取自时钟。

输入人数
11
队伍数
3 4 + 4 + 3
最大队伍
4
方式
盲抽

你的分组表

Team draw - 11 people, 3 teams
Seed 4266519976

Team 1 (4)
  Dana Whitfield
  Ines Duarte
  Chris Nakamura
  Jonah Pryce

Team 2 (4)
  Beth Okafor
  Grace Lindqvist
  Alex Rivera
  Farah Idris

Team 3 (3)
  Eli Farrow
  Kai Lindgren
  Hugo Marek

可以复制,也可以下载。种子是故意写进正文的:同样的名单和同样的设置,那个数字会把这分表原样再生成一次。

逐队一览

队伍人数成员
第 1 队4Dana Whitfield, Ines Duarte, Chris Nakamura, Jonah Pryce
第 2 队4Beth Okafor, Grace Lindqvist, Alex Rivera, Farah Idris
第 3 队3Eli Farrow, Kai Lindgren, Hugo Marek

与上面那张表同样的名单,换成在手机上更容易扫读的样子。

这些数字没有说明什么

  • 盲抽先把整份名单打乱,再按块发下去,所以名单原来的顺序不影响结果——但它确实会改变分组,因为打乱是从给定的名单开始的。
  • 抽签做不到均衡。本页只认识名单,别的什么都不知道:不知道能力,不知道年龄,也不知道谁和谁合得来。如果队伍必须均衡,就把最强和最弱的排进名单,再选蛇形轮选;或者把这次抽签当作起点,手工调整。
  • 种子就是承诺:同样的名单、同样的设置和同样的种子,在这里或任何别的机器上都会得到这分表。种子框留空时,每次抽签改用时钟取种,用过的种子会印在上方,可以粘回去。
  • 这分表的种子来自时钟而不是你填写的,所以表单里的种子框还是空的:在把那个种子填进去之前,这次结果无法复现。
  • 抽签是算术,不是摇奖机:用 4266519976 作种子打乱,每次都会得到同样的顺序,这才让种子值得印出来。它不是密码学随机,绝不能用于任何需要不可预测性的场合。
  • 进来 11 个名字,11 个进了队伍,0 个在等。
分组是在这个浏览器标签页里用左侧的名单抽出来的。名字从未发送到任何地方——本页背后没有任何可以接收它们的接口——那两个文件也一样,它们是在按下按钮时才在标签页里生成的。

在数字之前有两点值得说明。第一,抽取不是均衡——本页只知道名字,别的什么都不知道,所以它分不出强手和弱手,它会说出来而不是假装能分。第二,洗牌发生在你的浏览器里,表单背后没有服务器,也不会把名单上传;但要注意:本工具的输入内容可能会保留在网页地址中,分享链接前请注意隐私。

关于这个工具

把一份名单随机分成小组,本页来抽这张表:选择要几个组或每组多大,并在需要时把指定的人钉进不同组。产生这次抽取的种子会打印在顶部,所以下周在另一台电脑上,同样的小组会再次出现。

这次抽取是对整份名单做一次带种子的洗牌,然后按顺序发牌;这就是为什么同样的种子总能重建同一张表,也是为什么一个结果可以被重跑而不是重抽。它只是对名字的公平抽取:页面分不出强手和弱手,它会说出来,而不是假装能均衡一群它一无所知的人。

洗牌和下载都在本地浏览器里发生,表单背后没有服务器,名单不会被上传。不过这些字段没有 noUrl,浏览器会把它们写进网页地址,所以名单和设置可能留在地址栏里;把链接发给别人之前,请先清掉或避免分享带查询串的地址。请把它当作一种把已经认识的人快速、可复现地分组的方式,而不是对他们做出的评价。

它是怎么工作的

抽取:一个种子、一次洗牌、一张表

名单自上而下读取,制表符视为分隔符——当完全没有换行时逗号也算——这正是从电子表格粘贴进来的样子。也就是说,一行里用制表符隔开的两个名字会被拆成两个人,而在没有任何换行时,逗号也能把名字分开。然后名字用带种子的生成器洗牌:种子是一个数字,洗牌是在这个数字上做算术,而不是读取时钟,所以同样的种子总是产生同样的顺序。

你输入了种子时就用输入框里的那个,留空则来自时钟。这就是为什么输入框从不被悄悄填上数字:一个替你把数字敲进去的页面,会抹掉“这是我选择的抽取”和“这是我碰到的抽取”之间的区别。这张表实际用到的数字会打印在旁边——当把某些人分开需要不止一次尝试时,打印的是成功的那一个。

两种发牌方式:盲抽和蛇形轮转

盲抽先洗牌,然后按洗好的顺序发成整块:十一个名字分成三组时,洗好的前四个去第 1 组,接着四个去第 2 组,最后三个去第 3 组。你名单的每一种顺序产生这张表的可能性都相同,这正是“随机”通常的含义。

蛇形轮转先按组往下发、再往上发——1、2、3、3、2、1——所以第一个签和最后一个签会落在同一组。它只为一个场景存在:你已经排好序、最强的排在最前的名单。用在无序名单上它依然是无偏的,但它会把名单两端均匀铺开而不是随机分布,而这恰恰不是你想要的。

按组数分或按每组人数分

“组数”会在算术允许的范围内尽量平均地分割名单,并把余数给前面的组:十一个人分四组是 3、3、3、2。“每组人数”只生成完整的组:十一个人按每组四人分,得到两组、剩下三个人,而这三人会列在表的下方,而不是被塞进一个没人要求的短组里。

要求的组数多于人数时,就是每人一组,直到名字用完;要求的每组人数多于你拥有的人数时,就只有一个组。所以“数量”这个字段读的是旁边“按什么分”的设置,两个设置一起决定它的含义。

把两个人分开,以及重复的名字

“把这些人分开”框里的一行——Alex, Beth——是硬性约束,不是偏好。抽取会用下一个种子重试,直到这一对落在不同组,最多尝试四百次,表上会写明用掉了第几次抽取。如果没有一次尝试能把他们分开,页面会点名仍然在一起的组合,而不是悄悄交出一张忽略了指令的表。

名单里出现两个同名的人时,页面保留两条记录,并在结果里报告这个重名,而不是猜你想指的是哪一个:两个 Alex 会分别参与抽取,而“让 Alex 远离 Beth”在 Alex 出现两次时没有唯一答案,页面会照实说明。

示例

示例使用页面自带的默认输入,只改设置;下面的结果与你在页面上看到的完全一致。

十一个名字分成三组

名单,每行一个: Alex Rivera Beth Okafor Chris Nakamura Dana Whitfield Eli Farrow Farah Idris Grace Lindqvist Hugo Marek Ines Duarte Jonah Pryce Kai Lindgren · 按什么分: 组数 - 尽可能平均地分 · 数量: 3 · 方式: 盲抽 - 先洗牌,再整块发牌 · 把这些人分开(可选): — · 种子: science-class

已抽出队伍

3

11 个名字分成 4 + 4 + 3。种子 702047720,由你在表单中填写。

输入人数: 11 · 队伍数: 3 · 最大队伍: 4 · 方式: 盲抽

11 不能被 3 整除,所以前两组各四人、第三组三人——就像人手写这张表时会做的那样。这里的种子是手输的,所以这个示例每次访问都是同一张表。

把一对人分开,以及重试的代价

名单,每行一个: Alex Beth Chris Dana · 按什么分: 组数 - 尽可能平均地分 · 数量: 2 · 方式: 盲抽 - 先洗牌,再整块发牌 · 把这些人分开(可选): Alex, Beth · 种子: 0

已抽出队伍

2

4 个名字分成 2 + 2。种子 1(第 2 次抽签,共试了 400 次),由你在表单中填写。

输入人数: 4 · 队伍数: 2 · 最大队伍: 2 · 方式: 盲抽

种子 0 恰好把 Alex 和 Beth 分到同一组,所以页面改用种子 1 并打印它。把 1 粘回种子框,就能一次成功复现同样两组——这正是打印“实际用过的种子”而不是“你输入的种子”的全部意义。

常见问题

抽取真的是随机的吗?

洗牌是在带种子生成器上运行的 Fisher-Yates,它让名单的每一种顺序机会均等——这是你可以核对的算术,我们也在发布前逐项核对过。页面做不到的是了解名单上的人,所以这里的“随机”意思是“无偏”,不是“均衡得很好”。如果均衡重要,请把名单按最强在前排序并使用蛇形轮转,或者把抽取当作起点再手动调整。

为什么同样的种子给出同样的分组?

因为洗牌只取决于种子,别的什么都不取决于——不是时钟、不是浏览器、也不是日期。这就是刷新后或从分享链接打开后能复现同一张表的原因,也是种子被写进下载文件的原因。留空时每次抽取改由时钟决定,对于“就给我换一组”来说这是正确的行为。

它能把两个人分到同一组而不是分开吗?

不能直接做到:本页实现的约束是“不得在同一组”,因为那是靠重试可以满足的请求。想让一对人在一起,更好的做法是把他们当作名单里的一个条目——把两个名字写在同一行——然后如果想要分别计数,再手动拆分结果。

数字除不尽时会怎样?

用“组数”时,余数给前面的组,所以没有人被丢掉,各组规模最多相差一个。用“每组人数”时只生成完整的组,剩下的人会列在表下方,因为仅仅为了让算术看起来整齐而给某个组凑人数,是本页没有资格替你做的一个决定。

页面会保存我的名单,或者把它发到哪里去吗?

页面不保存、也不上传名单:洗牌、重试和两个文件都在你的浏览器里完成,表单背后没有接受数据的服务器。但名单字段没有 noUrl,所以名字会被写进网页地址:重新加载会给你带示例名单的表单,而地址栏里可能留着上次的名单和设置。分享地址前请先清掉查询串,别把别人的名字一起发出去。

这种带种子的随机适合密码、优惠券或抽奖吗?

不适合,它本来也不是为这个设计的。洗牌用的是可复现的种子生成器(mulberry32,一种确定性的 32 位伪随机数生成器)——这正是同样的种子和名单总能重建同样分组的原因。可复现性正是活动分组的价值所在,但一个完全由种子决定的序列,恰恰是不可预测的反面。任何必须不可预测的场合——密码、优惠券、抽奖——请改用本站的密码生成器和 UUID 生成器,它们用的是 `crypto.getRandomValues`。

资料来源与统计口径

  • 分组使用带种子的洗牌,一个种子在任何浏览器里都给出同一个顺序。
  • 要求把某些人分开时,页面最多尝试 400 个种子,并打印真正奏效的那一个。
  • 名单只按你输入的原文使用,不上传、不存储,也不做任何分析。

最近复核于 2026-09-16.

本页在您的浏览器本地运行,请保留原文件备份;不涉及财务建议。 阅读完整免责声明。