Zapadisk Team Generator v2.0

List of Players

Copy here-under your players list in tabular format (spreadsheet)
Columns to be respected:
Name | Level | Gender | Attendance day1 | <Attendance day2> | <...>

Generate Random Players to Test


What does it do?

This tool will split a list of players into the most even teams possible.
This means: having

  • the same number of players each day,
  • the same number of women and men,
  • the same mean level of players,
  • the same number of women and men playing each day.
How to use it?

Make a list of your players in an spreadsheet (MS Excel, Google Spreadsheet, LibreOffice…).
One line per player, and columns in this order:

  1. The name of the player (any text, e.g. First name, Last name)
  2. The level of the player (any number)
  3. The gender of the player (F or M)
  4. The attendance of the player on day 1 (0–1)
    (0=not present ; 1=present ; anything between can a percetage or a probability of being present)
  5. The attendance of the player on day 2 (idem)
  6. The attendance of the player on day …

Then copy-paste this in the text area above, without headers.
And then select options:

  • Runs: tests with ~20, recommended >~500 (requires more processor)
  • Teams: how many teams to you want to generate
  • Weights: this is the importance accorded to the 4 criteria [attendance, gender, level, gender per day], you can leave defaults.

And press "RUN"


Name Level Gender Day1 Day2
Naëlle Martin 2 F 1 1
Pablo Jacobs 4 M 1 0
Céleste Renard 2 M 0 1
Charlie Lambert 8 F 1 0
Candice Derauw 10 F 1 1
How does it work?
  1. Shuffle the initial players list.
  2. Split the list in even teams.
  3. Compute how different these teams are in one index number.
  4. Make a random swap between 2 players of 2 different teams.
  5. If this swap reduces the difference between the teams then keep it, otherwise revert it.
  6. Do this until nothing improves for a long time.

→We reached a local optimum
Do this multiple times (runs) to find several global optimums and local optimums.
And finally do this again until we reach the best local optimum we found so far.

  • If you want to generate a strong team and a weak team, instead of mixing levels, you can write a negative number for the 3rd weight (e.g. [3, 3, -3, 1])
  • It's possible to force 2 players to be togheter or apart by changing attendance values. (e.g. -1000 and 1000 will force these 2 players to be togheter. 1000 and 1000 will force them to be separate
Questions & Feedback

Mathias Leroy

List of Players

Name Level Gender Attendance

Generated Teams

Team Differences