👥 随机分组生成器
粘贴名单,随机打乱,公平分组。
🔒 100% 本地处理——名单不会被保存
粘贴一份名字列表,选择想要的队伍数量或每队人数,工具就会发一次全新的随机分组。它还会顺手做好清理——去掉首尾空白、跳过空行、删除重复项——所以你粘贴进去的名单就是被分组的名单。
分组是如何生成的
整个过程分两步依次进行。第一步清理输入:每行去掉首尾空格,空行丢弃,重复出现的名字跳过(保留第一次出现,其余顺序不变)。第二步用 Fisher-Yates 洗牌算法打乱清理后的名单——在随机源均匀的前提下,这是让每种排列等概率出现的标准算法——然后轮流发牌:第一个人到第 1 队,第二个到第 2 队,依此类推,发到最后一队后回到第 1 队。随机源是 Math.random。用来分组完全够用,但它不是加密随机的,不应在有人能从预测结果中获益的场合使用。
实操示例:十个名字分三队
假设你粘贴十个名字并选择分三队。10 除以 3 的余数是 1,所以会有一队多分到一个人,各队人数为 4、3、3。一次可能的分组如下:
- 第 1 队:Ada、Grace、Linus、Margaret
- 第 2 队:Alan、Barbara、Dennis
- 第 3 队:Ken、Radia、Tim
名字是随机顺序出现的,而不是按字母顺序,并且没有名字重复出现。按重新打乱即可对同样的十个名字再分一次,得到同样是 4/3/3 结构但成员不同的组合。因为抽取是随机的,反复重抽是在最终定下来之前探索不同方案的常规做法。
队伍数量 vs 每队人数
这两种模式回答的是不同的问题,当名单无法被整除时,这个区别就很重要。
| 你选择 | 工具计算方式 | 10 个名字时的例子 |
|---|---|---|
| 队伍数量 | 轮流发牌,正好分成 N 队 | 4 队得到 3、3、2、2 |
| 每队人数 | 队伍数 = 名字数除以每队人数向上取整,再发牌 | 每队 4 人得到 4、3、3 三队 |
在按每队人数模式下,当名单不能整除时,实际队伍可能比你要求的人数少,但各队人数之差仍然不会超过 1。按队伍数模式要求每队至少有一人;按每队人数模式要求所请求的人数至少能在名单里装下一次。两种模式都只接受不小于 1 的整数。
什么算作一个名字
每个非空行就是一个人。首尾空格会被去掉,所以 Ava 和 Ava 会折叠成同一条,只保留第一条。由于去除空白后按精确匹配,Ava 和 ava 是两个不同的人,都会在清理后保留下来。逗号不是分隔符——一行 Ava, Ben 会成为一个字面名为 “Ava, Ben” 的成员。如果你的名单来自逗号分隔的一列,请先拆成一行一个名字再粘贴。
何时适用、何时不适用
它适合课堂项目分组、运动分队、工作坊分组讨论和派对游戏分队。当分组必须满足约束时它就不合适:无法让特定的人分到一起或分开,无法按技能或角色做平衡,不能指定固定队长,也没有可复现抽签的种子。它也不持久化任何内容,所以如果你需要留存结果,请在关闭标签页前复制队伍。整个操作都在本地浏览器中进行,因此真实姓名名单不会离开页面。
实用建议
几个习惯能让工具更贴合真实名单。保持一行一个名字并去掉称谓,因为 “Dr. Ada” 和 “Ada” 是两个不同条目,会同时出现。如果你需要让一对人始终在一起——比如司机和领航员——把他们写成一行,如 “Ada & Grace”,这样他们必定同队。当确切人数比队伍数量更重要时,用按每队人数模式并接受偶尔出现人数较少的队伍,而不是用按队伍数模式,后者可能留下只有一个人的队伍。工作坊多轮分组时,粘贴同一份名单,每轮之间重新打乱并复制每次结果;没有人会一直待在同一个组里,因为洗牌是整份名单的完整排列,而不是轮换。如果你想要可复现、可存档的抽签,请把生成的队伍行记下来,因为这里没有种子可供重放。
清理只在一个方向上是有破坏性的:重复项会被静默丢弃,所以如果你本来期待某个重复名字出现两次,请检查输入。另外,由于匹配按行且精确,生成前预览一下名单是值得的。一个常见的失误是粘贴表格的一列时还带着 “Name” 这样的表头行;表头会变成一个队员并打乱所有队伍边界。请先删掉表头和末尾备注。如果你的列表是制表符分隔的多列,请先粘到文本编辑器里,把制表符换成空格,只保留名字那一列。
相关工具
常见问题
它用的是加密安全的洗牌吗?
不是。洗牌是用 Math.random 驱动的 Fisher-Yates 算法,对课堂分组、游戏之夜和分组讨论来说足够快也足够均匀,但它不是加密随机源。不要用它抽取安全令牌,也不要用于任何涉及金钱的场合。
名字数量不能被整除时,各队人数怎么定?
打乱后的名单按轮流发牌的方式分配,余数从第 1 队开始每队多给 1 人。10 个名字分 3 队,结果总是 4、3、3,而不会出现 5、3、2。
"按每队人数"模式在不能整除时会怎样?
它先按"名字数除以每队人数向上取整"算出队伍数,再发牌。10 个名字按每队 4 人,会分出 4、3、3 三队,因此实际某队可能比你要求的 4 人少。
空行和重复的名字会被去掉吗?
会。每行先去掉首尾空白,空行丢弃,已经出现过的名字会被跳过、保留第一次出现。去除空白后按精确匹配,所以 Ava 和 ava 会被当成两个不同的人。
能创建比人数还多的队伍吗?
不能。按队伍数模式会拒绝比名单人数还多的队伍数,按每队人数模式会拒绝比名单还大的每队人数。两种情况都会显示行内错误,而不是生成空队伍或只有一人的队伍。
"重新打乱"做了什么?
它用当前输入重新执行当前的分组模式,从同一份清理后的名单里再随机抽一次。它不会改变队伍数或每队人数,也不会在你关闭标签页后保留任何东西。
由 HandyTools Hub 团队审校 · 最后更新