I'm struggling with an algorithm to divide a group of contestants into smaller groups to make up rounds. Take for example a group of 20 people, which I want to divide into 3 groups (7,7,6). For each round in a contest, the groups are different, so that everybody has to combat everybody else in a rather fair distribution.
The problem is that with a (naive) random selection one person has to combat the same person more then another one. I.e. Two elements end up often in the same group.
I would like to make this more fair so that for a given number of contestants, group size (not all groups are the same size) and number of rounds, the algorithm finds a fair set of groups per round so that on average every contestant has the same odds of meeting the same contestant during the rounds.
Is there any literature on this topic I can consult? Or any known algorithms?