隨機分組產生器是一種工具,它會接收一份姓名清單,並使用隨機化演算法將其分成使用者指定數量的均衡小組。這種工具的目的是消除手動挑選隊伍時產生的偏見,因為隊長往往會把較強的選手集中在一起,或把好友配成一隊。像 隨機分組產生器 這種專門打造的工具,只需在瀏覽器中按一下就能完成分組,接受每行一個姓名的輸入,並在名單無法整除時,產生各組人數最多只差一人的結果。由於運算都在本機執行,名單從不離開你的裝置,這在名單包含真實人物而非測試資料時特別重要。
分組是幾乎所有團體活動背後反覆出現的工作之一。教練需要為練習賽分出實力相當的隊伍,老師希望為專題分出能力混合的分組,活動主辦人則將參加者打散成分組討論室以便交流。人工處理通常意味著把名字寫在廢紙上、從帽子裡抽籤,或是讓志願者「選隊」——而每一種方法都會帶來偏袒或疲勞。最簡單的解決方法,就是把洗牌的工作交給一個幾秒內就能完成同樣工作、且社交摩擦更少的工具。

什麼讓分組感覺「均衡」
當名單無法整除時,均衡的小組並不總是人數相等。11 位成員的一組人,可能要分成六人與五人的兩隊,或是分成 4、4、3 人的三組,具體取決於組數。隨機分組產生器使用一條單一規則來確保各組人數誠實:各組人數最多相差一人,多出來的成員會從頭開始依序分配到各組,因此不會有某一組多了兩人,而另一組卻沒有增加。技能平衡是另一個問題,光靠隨機分配無法解決——請參閱本文稍後的「公平性與隨機性」一節,了解實用的變通方法。
收集與格式化名單
最乾淨的輸入格式是每行一個姓名,因為每一行都會被視為一筆獨立的資料,多餘的逗號也不會破壞解析。一份 10 個姓名的簡短名單,在輸入框中看起來可能像這樣:
| 格式 | 範例 | 最適用於 |
|---|---|---|
| 每行一個姓名 | Alex Bailey Casey Drew | 最可靠;可避免重複處理的問題 |
| 以逗號分隔 | Alex, Bailey, Casey, Drew | 從試算表或電子郵件快速貼上 |
| 混合格式 | Alex, Bailey Casey | 可接受但不夠一致 |
在貼上之前,如果名單來自通訊錄,請先去掉敬稱與頭銜(「Mr.」、「Ms.」、「Dr.」等),並注意重複的項目——不小心被列出兩次的姓名,在輸出結果中會出現兩次。如果是班級名單,直接複製成績欄通常就能用,因為每一列本身已包含單一識別資訊。
如何建立隨機隊伍
- 開啟 隨機分組產生器,並清除姓名欄位中的任何範例文字。
- 將名單貼入姓名欄,每行一個姓名,或以逗號分隔各項目。
- 在組數欄位中輸入正整數——例如輸入 4 表示四個分組,或輸入 2 表示一對一的對戰。
- 確認組數不大於你貼上的姓名數量;如果超過,產生器會拒絕執行。
- 點擊 產生分組,等待結果面板顯示均衡的小組。
- 閱讀輸出結果,並判斷分組看起來是否合適;你可以再點一次 產生分組 來重新洗牌。
- 複製結果、截圖,或將連結分享給需要查看分組的人。
對於最多數百人的名單,整個過程一分鐘內就能完成,因為底層的洗牌對每個項目都是常數時間。較大的名單——例如 500 人的會議——同樣運作良好,因為唯一的限制是瀏覽器記憶體,而非網路速度。
挑選真正合適的組數
最常見的錯誤是要求的組數超出名單所能支援。8 個姓名可以輕鬆分成 2、4 或 8 組;如果要求 10 組,會留下 2 個空組,工具會阻止這個動作。一條快速的規模規則:組數必須是小於或等於名單人數的正整數。就活動類型的分組而言,組數通常較小——體育活動為 2 隊、團體專題為 3 到 5 組,破冰圈則為 6 或 8 組。
公平性與隨機性
真正的隨機性讓每一種選手組合出現的機率相同,這正是當名單成員實力相近時你想要的結果。當選手之間的實力差距很大時——例如街頭籃球、排位遊戲、混合年級的課堂專題——純粹的隨機分組有時會把最強的選手集中到同一隊。下列兩種實用的變通方法,能在不犧牲自動化洗牌速度的前提下,讓工具持續發揮作用:
- 先分層,再在層內隨機。依技能(排名、讓分、年級)排序選手,將他們分成「A」和「B」兩份名單,再分別隨機打散並分配到各隊。這樣能產生平均實力相近的小隊。
- 設定能吸收變異的組數。在 3 隊以上、12 位以上選手的情況下,大數法則會自然地平均掉大多數的實力不均。
對於希望在沒有手動排名的情況下快速獲得實力均衡隊伍的教練來說,同樣的瀏覽器操作流程,加上快速的目測檢視,通常足以抓出明顯的不均衡——你可以一直重新洗牌,直到各組看起來具有競爭力。
此工具在眾多產生器中的定位
隨機分組產生器是更廣泛的瀏覽器內隨機化工具家族中的一員。針對其他常見的需求,隨機數字產生器 負責處理「從多個項目中選出一位優勝者」的工作,而 隨機姓名挑選轉盤 則加入了轉盤的視覺效果,適合現場活動。至於兩個選項的決定,最簡單的方式就是使用 擲硬幣。每個工具都在本機執行,並且能與分組工作流程很好地搭配——例如先產生分組,再用擲硬幣決定哪一隊先上場。
隱私與資料去向
對於線上名單工具,一個常見的疑慮是姓名是否會被上傳到伺服器。隨機分組產生器在瀏覽器內完成整個洗牌過程,這代表網路分頁中不會看到任何夾帶你名單的外傳請求。這個細節對處理未成年人的學校、為員工分組的人資團隊,以及任何受資料保護法規約束的主辦單位都很重要。關閉分頁就會從記憶體中清除名單,因此事後無需再清理任何東西。如果想更深入了解 JavaScript 中用戶端隨機化的運作方式,可以從 MDN 關於 Web APIs 參考的說明文件開始閱讀。
常見問題排解
當產生器拒絕執行時,原因幾乎總是下列三種之一:
- 組數超過名單人數。請把數字調低,直到最多等於姓名數量。
- 空行或多餘的逗號。這些會產生零長度的項目,被工具過濾掉,可能使有效名單縮小並觸發人數檢查。貼上之前請先移除空白行。
- 姓名擠在同一行字串中。如果沒有換行或逗號,產生器會把它當成一個非常長的姓名。請先用逗號或換行符號切分。
如需相關工作流程,請參閱 如何從任何名單建立隨機隊伍 一文,該文深入探討了平衡策略;以及 如何在幾分鐘內產生一份隨機待辦清單 一文,當分組完成但活動尚未決定時,這是很自然的延伸閱讀。
如需更深入的內容,請參閱 如何產生你會真正想用的使用者名稱靈感。
如需更深入的內容,請參閱 如何在瀏覽器中線上擲骰子:d4 到 d20。