I am organizing quiz for the university and I am having some problems with creating good schedule for this.

The tournament format is as follows:
There are 6 * k players participating {k could be 7,8,9,10,11}

The game is split into 6 rounds.

For each round k teams are formed(each team consist of 6 players).

What I would like to achieve(from most important to least important):

- Maximize amount of people every person meet across all rounds(ex. in 6 round game in ideal case everybody will play with 30 different men);

- Minimize player pair duplication across different rounds(ex. player A shouldn't consequently meet player B in his team in 3 or 4 rounds);

- Insure, that formula used is fair for everybody.

For now I am using schedule, generated via brute force(for 42 persons). It guarantees, that every man would meet at least 23 different players in the game and each two people would not meet more than 3 times. I suppose there should be generic algorithm for such problem, but I have no idea where to dig. Any help would be appreciated.