Думаю, здесь нужно гуглить что-то типа:
matchmaking algorithm
К слову, надеюсь, английский вы знаете неплохо.
Советую разделять:
- Логику подбора игроков
- Конкретный алгоритм (оптимизация этой логики)
- Реализацию на конкретных ЯП и БД
Это всё разные вопросы. И их следует адресовать разным экспертам, а не 3 в 1. Эксперт по ЯП может не уметь в геймдизайн и наоборот.
Что касается первого (логики подбора), то самым тонким моментом является определение "слабого" и "сильного" игрока, и по какой шкале измеряется их сила. Это имеет отношение скорее к геймдизайну, где цель - сделать игру интересной. Следующие пункты относятся уже к другому - к быстродействию (не путать с временем ожидания игрока при поиске группы), дешевизне решения, борьбе с читерами и т.д.