Back to guides
Guide for tournament hosts, teachers, and facilitatorsUpdated guide9 min read

Round robin group generator for any group size

Round robin scheduling is easy to describe but surprisingly hard to do well once groups can have three, four, or more people. This guide explains when everyone can meet everyone before any repeats happen, when that is mathematically impossible, and how to generate the best available schedule anyway.

A tournament organizer studies a circular round robin schedule where people cards rotate between tables of three and repeat connections are marked clearly.

Guide visual

Round robin groups

Everyone-meets-everyone when the math allows it.

any group sizeno-repeat checksbest effort

For pairs, most people know the classic round robin tournament schedule. For groups larger than two, each round creates many pairwise contacts inside every group, so the schedule becomes a combinatorial design problem rather than a simple bracket.

A true round robin schedule has strict mathematical limits

  • with N participants and group size G, each person can meet at most G − 1 new people per round
  • R no-repeat rounds require R × (G − 1) ≤ N − 1; if this fails, repeats are unavoidable
  • an exact “everyone meets everyone once” schedule needs R = (N − 1) / (G − 1), so N − 1 must divide cleanly by G − 1
  • if every group must have the same size, N also needs to divide cleanly by G, otherwise you need byes or uneven groups
  • even when the arithmetic works, extra constraints, fixed hosts, and balancing goals can make a perfect schedule impossible

Why most round robin generators only support pairs

Groups larger than two create several matchups at once

A group of 4 contains six pairwise contacts. Moving one person changes multiple matchups, so a spreadsheet formula that works for pairs does not generalize cleanly.

Divisibility decides whether perfection is even possible

For 16 people in groups of 4, a 5-round everyone-meets-everyone schedule is mathematically plausible. For 12 people in groups of 3, the same exact goal cannot divide cleanly, so a perfect full round robin is not possible without changing the format.

Real-world rules reduce the solution space

Tournament seeds, table hosts, skill balance, keep-apart rules, and uneven attendance can turn an otherwise possible round robin into a best-effort optimization problem.

How to choose round robin settings

Before generating, decide whether you need a perfect full round robin or simply the best no-repeat schedule for your available time.

  1. Start with participants and group size

    Let N be the number of participants and G be the desired group size. If you use a fixed number of groups instead, estimate the actual group size and remember that uneven group sizes weaken exact round robin guarantees.

  2. Check the no-repeat round limit

    For R rounds with no repeated pairings, the necessary check is R × (G − 1) ≤ N − 1. If you ask for more rounds than this, some participant must repeat at least one previous contact.

  3. Check whether a complete round robin can divide cleanly

    To have everyone meet everyone exactly once before any repeats, the round count must be (N − 1) / (G − 1). Equal-size groups also require N to be divisible by G. These are necessary checks, not a universal proof that a perfect schedule exists.

  4. Decide what to do when perfection is impossible

    You can reduce the number of rounds, change the group size, allow one uneven group, add a bye, or let GroupMixer generate a best-effort schedule that minimizes repeated pairings and spreads repeats as fairly as possible.

  5. Add constraints only after the basic shape works

    Once the participant count, group size, and round count make sense, add keep-apart rules, fixed hosts, or balancing attributes. Each extra rule can make a perfect no-repeat schedule harder, so treat the repeat score honestly.

Example exact round robin setup

Sixteen participants in groups of four can aim for five rounds: each person meets three people per round, and after five rounds each person can have met the other fifteen participants exactly once.

  • 16 participants
  • groups of 4
  • 5 rounds because (16 − 1) / (4 − 1) = 5
  • equal-size groups because 16 divides cleanly by 4
  • avoid repeat pairings enabled
  • best-effort mode still applies if you add constraints that block the exact design

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
Add attribute (e.g. Gender)
Male Male Female
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
16
Groups
4
Approx size
4
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 specific pairs of people from being placed in the same group. Write one pair per line. Example: "Alex, Sam" means Alex and Sam must never be grouped together.
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.
Add an attribute in the participants list to use this section.
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 Keep Together, Keep Apart, Fixed Placements, Repeat Limit, and balance rules only to the sessions where they matter.
  • Weighted preferencesAdd preferences that can be violated when needed, then tune their weights relative to other goals.
  • Pair encounter targetsTarget how often specific pairs should 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.
Your participants, rules, and configuration come with you.

Related reports

Related guides