Back to guides
Project and activity team guideUpdated July 22, 20263 min read

How to create balanced random teams

Decide whether the teams need complementary roles or comparable strength. Then distribute one defensible field, preserve variation among valid assignments, and review the roster before publishing it.

A team lead runs role tokens and people cards through a playful team-mixing machine into balanced team baskets.

Guide visual

Balanced random teams

Fast team splits with a healthier role mix.

24 people4 teamsrole mix

Define what balance means for these teams

Team purposeUseful targetCommon mistake
Project teamsComplementary disciplines or required roles.Treating every discipline as equally necessary for every project.
Competition teamsComparable totals from a justified numeric measure.Using vague labels as if they were precise ratings.
Practice or activity teamsEnough role coverage for the exercise.Adding permanent skill labels to solve a one-off task.

Balanced random is not a uniform draw

Randomness can provide variation among candidate assignments. Once balance preferences and hard rules are applied, some assignments are deliberately favored or rejected. Describe the result as randomized within the chosen model, not as a pure draw from every possible roster.

If transparency requires a literal random draw, remove the balance and relationship model and use random groups instead.

Build teams without over-modeling people

  1. Choose the team purpose

    Write whether the goal is complementary project coverage, comparable competition strength, or a workable activity mix.

  2. Set team count and capacity

    Use a fixed team count when the event or project structure is known. Inspect any unavoidable size difference.

  3. Add one justified role or skill field

    Use self-described roles, verified qualifications, or information already legitimate for the activity.

  4. Choose category or numeric balancing

    Spread categories for role coverage. Use numeric sums only when the measure is meaningful enough to compare totals.

  5. Add hard rules sparingly

    Fix a lead only when that role is truly assigned. Keep people apart only for a genuine operational, safeguarding, or conflict-of-interest need.

  6. Review alternatives privately

    Compare capacity, role coverage, hard requirements, reporting relationships, accessibility, and conflicts of interest before publishing.

Balance evidence is narrower than team quality

  • Your groups shows the concrete team shape: assigned count, capacity, roster, and whether a named lead appears in the intended team.
  • The Discipline Attribute Balance card explains each deviation through the team, discipline, desired count, and actual count rather than an unexplained aggregate penalty.
  • Required fixed placements and apart rules report “No violations” in a valid result. Anything else is a solver defect, not a balance trade-off.
  • For teams that recur across sessions, the histogram and matrix reveal repeated colleague pairings. For a one-off assignment, those contact diagnostics add little.
  • Complementarity, accessibility, reporting conflicts, and whether people will work well together remain outside the result unless a relevant rule was explicitly modeled.

Worked example: four cross-functional teams

The preloaded example has 24 people, four teams of six, and six people from each of four disciplines. Because six members of a discipline cannot divide equally across four teams, identical discipline counts are impossible.

Setup facts

  • 24 participants in 4 teams
  • 6 each from Engineering, Design, Product, and Data
  • 4 fixed team assignments
  • 2 prohibited pairings

Review the result

  • Look for useful cross-functional coverage rather than claiming perfect equality.
  • Confirm every fixed assignment and apart rule separately.
  • Check whether a different valid distribution better serves project complementarity.

Try this setup in GroupMixer

This tool is preloaded with the example from this guide. You can edit the participants, constraints, sessions, and balance settings before generating groups.

Enter one person per line in the first column. Optionally, add attribute columns such as gender, role, or skill-level on the right. Those attributes can then be used to balance groups and set additional rules.
Name
Use 1 session for a single round of groups. Increase sessions when you want multiple rounds with new group assignments for the same people.
People
24
Groups
4
Approx size
6
Force specific people into the same group in every session. Write one "clique" per line, with names separated by commas. Example: "Alex, Sam" keeps Alex and Sam together.
Prevent selected people from being placed in the same group. Write one set per line; everyone on a line is kept mutually apart. Example: "Alex, Sam, Jordan" keeps all three separated.
Pin specific people to a specific group across all sessions. Enter one name and one group number per row. This is useful for leaders, presenters, or anyone who must stay in a known group.
Name
Group
Set target counts for each attribute value inside each group. Keep auto distribute enabled for fair automatic targets, or edit the counts manually when you need exact control.
Discipline
Automatic targets · All sessions
Groups 1-2Drag the handles in the bar to adjust the distribution, or edit the numbers next to the labels manually. A 0-target attribute is still active: the solver tries to keep that value out of the group. A non-allocated attribute is ignored by this balance target. Toggle an attribute on or off by clicking its label in the legend or bar.
Drag the handles in the bar to adjust the distribution, or edit the numbers next to the labels manually. A 0-target attribute is still active: the solver tries to keep that value out of the group. A non-allocated attribute is ignored by this balance target. Toggle an attribute on or off by clicking its label in the legend or bar.
Groups 3-4Drag the handles in the bar to adjust the distribution, or edit the numbers next to the labels manually. A 0-target attribute is still active: the solver tries to keep that value out of the group. A non-allocated attribute is ignored by this balance target. Toggle an attribute on or off by clicking its label in the legend or bar.
Drag the handles in the bar to adjust the distribution, or edit the numbers next to the labels manually. A 0-target attribute is still active: the solver tries to keep that value out of the group. A non-allocated attribute is ignored by this balance target. Toggle an attribute on or off by clicking its label in the legend or bar.
Need even more control?
  • Partial attendanceSet which participants attend which sessions instead of assuming everyone is present every round.
  • Custom group capacitiesGive each group its own capacity and override those capacities for specific sessions when room sizes or staffing change.
  • Session-specific constraintsApply scoped rules only where they matter, then use global objectives such as Avoid Repeats for whole-schedule quality.
  • Weighted preferencesAdd preferences that can be violated when needed, then tune their weights relative to other goals.
  • Encounter targetsTarget how often selected people should all meet across the schedule, including exact, minimum, or maximum encounter counts.
  • Group visit targetsControl how often selected people visit selected groups across sessions for station rotations, task exposure, or visit caps.
  • Advanced constraint tuningFine-tune repeat limits, attribute-balance modes, penalties, and other constraint details beyond the landing-page controls.
  • Solver settingsAdjust runtime limits, deterministic seeds, solver family, and other optimization settings.
  • Result analysisInspect score breakdowns, constraint compliance, penalties, and saved results in more detail.
Quick Setup and the scenario editor use the same saved scenario. Settings hidden here remain intact.

Related guides