Random Group Generator & Team Balancer
Split lists into fair, balanced teams instantly. Features skill-weighting, drag-and-drop refinement, and "keep together/separate" logic for teachers and leads.
| number for skill balancing.
0 items
Enter names and click Generate to start.
About
Fairness is rarely random. In classroom management, corporate workshops, or competitive gaming, true balance requires more than a shuffle algorithm. It requires weighted distribution. This tool solves the problem of uneven teams by allowing you to assign a numerical "skill value" to each entry. Whether balancing academic grades, employee seniority, or player MMR, the algorithm minimizes the variance between group totals.
Beyond mathematics, social dynamics matter. The strict exclusion logic allows you to flag individuals who must be separated or pairs that must remain together. Unlike static generators, this interface remains fluid: once the initial calculation is complete, you can manually drag and drop members between groups to finalize the arrangement before exporting to CSV or Markdown.
Formulas
When Skill Balancing is enabled, the tool attempts to minimize the difference between the total skill sum of each group. The target sum Starget for any group is defined as:
Where N is the total number of participants, vi is the skill value of the i-th participant, and k is the number of groups. The algorithm uses a Snake Draft sorting method (1, 2, 3... 3, 2, 1) to distribute high-value items evenly.
Reference Data
| Feature | Standard Randomizer | This Tool (Snake Draft) |
|---|---|---|
| Algorithm | Pure Random (Fisher-Yates) | Sorted Snake Draft + Optimization |
| Input Format | Names Only | Name | Skill Level (1-100) |
| Goal | Chaos / Chance | Mathematical Parity (∑ Group A ≈ ∑ Group B) |
| Constraint Handling | None | Keep Together / Force Separate |
| Variance | High (σ2 is uncontrolled) | Minimized (Δ between group means is low) |
| Post-Processing | None (Static Text) | Drag & Drop Rebalancing |
| Persistence | Lost on Refresh | Saved to LocalStorage |