Cách dùng
- Dán hoặc gõ tên người chơi, mỗi dòng một người. Dòng trống và khoảng trắng thừa bị bỏ qua, nên một danh sách sao chép từ Discord hay sổ điểm danh lớp học dùng được ngay.
- Đặt số Đội (2–16). Nếu danh sách không chia đều, các đội đầu tiên sẽ nhận thêm một người — và đội nào được thêm cũng là ngẫu nhiên.
- Chọn kiểu đặt tên: Team 1, 2…, Màu sắc hoặc Con vật. Tên chỉ là nhãn; chúng không ảnh hưởng tới việc ai vào đội nào.
- Nhấn Chia đội. Không thích kết quả? Nhấn lại — mỗi lần nhấn là một lần xáo trộn mới.
- Dùng Sao chép tất cả để dán danh sách đội vào Discord, nhóm chat hoặc phòng chờ.
Cách xáo trộn hoạt động: Fisher–Yates, không phải "sort bằng ngẫu nhiên"
Cách hấp dẫn để xáo trộn một danh sách là names.sort(() => Math.random() - 0.5). Đó cũng là cách sai: thuật toán sắp xếp mong đợi một hàm so sánh nhất quán, và với một hàm ngẫu nhiên, một số thứ tự nhất định xuất hiện thường xuyên hơn hẳn những thứ tự khác — có thể đo được, không chỉ là lý thuyết. Đó là lý do vì sao các công cụ chia đội "ngẫu nhiên" cuối cùng lại xếp hai người bạn giống nhau vào cùng một đội mỗi tuần.
Công cụ này dùng xáo trộn Fisher–Yates: đi từ cuối danh sách, và đổi chỗ mỗi phần tử với một phần tử được chọn ngẫu nhiên chưa bị cố định. Mỗi cách trong số n! hoán vị đều có xác suất bằng nhau chính xác, và chỉ cần một lượt duyệt. Chỉ số ngẫu nhiên đến từ crypto.getRandomValues với lấy mẫu loại bỏ, nên cũng không có thiên vị theo phép chia dư. Sau khi xáo trộn, danh sách chỉ đơn giản được cắt thành số đội yêu cầu, tên nối tiếp tên.
Trong thực tế điều này nghĩa là: với 10 người chơi chia thành 2 đội, có 126 cách chia khả thi và mỗi cách có xác suất 1 trên 126. Nhấn nút hai lần và bạn hầu như sẽ không bao giờ thấy cùng một cách chia.
Chia công bằng khi con số không chia hết
| Người chơi | Số đội | Kết quả |
|---|---|---|
| 10 | 2 | 5 + 5 |
| 11 | 2 | 6 + 5 |
| 13 | 3 | 5 + 4 + 4 |
| 27 | 4 | 7 + 7 + 7 + 6 |
| 30 | 6 | 5 × 6 |
Những người chơi dư ra vào các đội đầu tiên trong danh sách — nhưng vì bản thân danh sách đã được xáo trộn và nhãn đội chỉ được gán sau đó, "đầu tiên" cũng là ngẫu nhiên. Nếu cần các đội tuyệt đối bằng nhau, hãy bỏ một cái tên và để người đó làm trọng tài, hoặc thêm một ô cho bot.
Mọi người dùng nó ở đâu
- Custom CS2, Valorant và Dota 2 — 10 tên vào, hai đội năm người công bằng ra, không kịch tính tranh cãi đội trưởng. Để cân bằng theo trình độ, hãy tách riêng hai người chơi giỏi nhất thủ công và chia tám người còn lại.
- Sự kiện Minecraft và Roblox — đội hình bed wars, đấu xây dựng, đội chơi trốn tìm cho đêm server.
- Giáo viên — dự án nhóm và thể dục. Nhóm ngẫu nhiên chấm dứt việc cùng vài đứa trẻ luôn ghép cặp với nhau, và câu trả lời "máy tính chọn đấy" chấm dứt mọi lời than phiền.
- Team building và văn phòng — đội thi đố vui, nhóm hackathon, vòng bốc thăm quà tặng bí mật.
- Thể thao — bóng đá, bóng rổ hay bóng chuyền tự phát ở công viên; dùng kiểu đặt tên Màu sắc và phát áo vest.
- Streamer — game với người xem: dán tên từ chat, chia thành đội ngay trên màn hình trực tiếp.
Mẹo để chia "không ai mất lòng"
Ngẫu nhiên là công bằng, nhưng không phải lúc nào cũng cân bằng. Vài mẹo để có cả hai:
- Tự chọn đội trưởng trước. Chỉ chia những người không phải đội trưởng, rồi gán một đội trưởng cho mỗi đội. Công bằng cho những người còn lại, cân bằng ở vị trí đầu.
- Chia hai đợt cho các cấp độ kỹ năng. Xáo trộn người chơi mạnh vào N đội, sau đó xáo trộn phần còn lại vào N đội và ghép Đội 1 với Đội 1, cứ thế tiếp tục.
- Cho mọi người xem màn hình. Toàn bộ ý nghĩa của một lần xáo trộn không thiên vị là nó công khai. Chia sẻ màn hình của bạn hoặc dán ngay danh sách đã sao chép.
- Quy tắc quay lại. Thống nhất trước: tối đa một lần quay lại, và chỉ khi mọi người đồng ý. Nếu không sẽ có người bấm mãi cho tới khi vừa ý.
Điểm khác biệt của công cụ này
- Xáo trộn Fisher–Yates thật sự trên nguồn mã hóa, không phải mẹo "sort bằng ngẫu nhiên" bị thiên vị.
- Tới 16 đội, các nhóm không đều được xử lý công bằng và có thể dự đoán được.
- Tên đội theo màu sắc và con vật cho trẻ em, lớp học và màu áo vest.
- Sao chép toàn bộ danh sách đội chỉ với một cú nhấn cho Discord hay chat phòng chờ.
- Không đăng ký, không giới hạn số tên, không quảng cáo che nút bấm, chạy trên điện thoại ngay tại sân.
Quyền riêng tư
Những cái tên bạn dán vào không bao giờ rời khỏi thiết bị của bạn. Việc xáo trộn chạy trong trình duyệt, không có gì được lưu lại, và không có yêu cầu server nào khi bạn nhấn nút — bạn có thể kiểm tra ở tab Network. Đóng trang và danh sách biến mất.
Câu hỏi thường gặp
Tôi có thể chia bao nhiêu người thành các đội?
Không có giới hạn cứng về số tên; số đội là 2–16. Cả một khối lớp 200 học sinh chia thành 16 nhóm chỉ mất một phần giây.
Công cụ chia đội này có thực sự ngẫu nhiên không?
Có — nó dùng thuật toán Fisher–Yates với một nguồn ngẫu nhiên mã hóa, nên mọi cách chia khả thi đều có xác suất bằng nhau chính xác. Không có ký ức về những lần chia trước và không có trọng số ẩn nào.
Tôi có thể tạo các đội có kích thước cố định thay vì số đội cố định không?
Chia số người chơi của bạn cho kích thước mong muốn rồi nhập kết quả đó làm số đội: 20 người chơi thành các đội 4 người nghĩa là 5 đội.
Tôi có thể cân bằng các đội theo trình độ không?
Không tự động — công cụ này không có dữ liệu về rank. Hãy chia những người chơi giỏi nhất trước, rồi phần còn lại, sau đó ghép các nhóm lại; hoặc chỉ định đội trưởng thủ công và chỉ ngẫu nhiên hóa những người chơi còn lại.
Điều gì xảy ra khi số người chơi là số lẻ?
Các đội đầu tiên sẽ nhận thêm một người chơi. Vì danh sách đã được xáo trộn trước khi nhãn được gắn vào, nên đội nào nhận thêm người cũng là ngẫu nhiên.
Tôi có thể dùng nó cho một lớp học hay một buổi workshop không?
Đó là một trong những cách dùng phổ biến nhất. Dán danh sách lớp, chọn số nhóm, nhấn một lần và cho xem màn hình — không ai có thể tranh cãi với một lần xáo trộn mà mọi người đều chứng kiến.