How this works
The logic in this scheduler is designed to promote fairness. It does much of this through randomness. The scheduler goes round by round and court by court to assign players to a team and court.
Each round has a unique generated list of players, based on 3 cascading critera.
Players who did not play in the previous round Players who have played in the least rounds so far A random sampling from the remaining group That group will be randomly segmented and assigned to a team and court.