Как вариант накатаю пару строк, возможно и туповато выглядит
Делим все на этапы.
1-й тур - случайная жеребьевка.
2-й и все последующие туры - пары формируются по одинаково набранным очкам, повторные пары не допускаются (в этом случае, участвует/жеребиться игрок/и с меньшим количеством очков).
- вполне нормальный вариант. Игры всегда между сила-магия.
1-ый этап - отборочный. Исходя из количества играющих проводим несколько туров, для отсеивания, например при 12:17 игроках (хотя х.з. будет ли столько) 4-5 туров достаточно. В группах первые 8 игроков переходят в след этап.
2-ой этап. Несколько туров(?). Снова - 1-ый тур 2-ого этапа случайная жеребьевка, далее по набранным очкам. Игры между сила-магия. 4 сильнейших в группе переходят в след этап.
3-ий этап. Несколько туров(?). Все так же с жеребьевкой. Игры сила-магия.
4-ый этап. финал. Исходя из набранных очков 3-его этапа проводятся матч за 1-ое место между игроками занявшими соотв. 1-ое место в группах. Игра до 2-ух побед.
Тут очевидно получится, что в финале будет битва сила-магия, а не магия-магия к примеру. По цифрам и кол-ву туров - все примерно, но даже так в среднем выйдет 10-20 туров с финалом. Ну и само собой чем больше участников, тем больше туров.
Ограничение по фракциям - однозначно делать не более 3(+ - ?) игр за каждую фракцию
начиная с отборочного этапа и заканчивая финалом. Т.е., таким образом будет выбор - оставлять любимую расу на потом и пробиваться в финал более неудобными расами для игрока, или играть ей сразу но без возможности играть ей в финале.