Честно, идея ТС какая-то слишком уязвимая и предсказуемая. У меня есть немного другая идея: 1) Допустим, в игре 20 карт. Никто нас не заставляет подбирать команды из одного общего пула, хуже не станет, если для каждой карты юзать свой пул (онлайн растет явно быстрее, чем новые карты появляются). Итак, игрок еще перед формированием команды определяется на какую-нибудь карту. 2) Есть несколько различных алгоритмов определения карты. Например, самый простой - для пользователя генерируется перестановка из 20 карт, очередь. Отыграл игрок бой - карта убирается из начала его очереди и кладется в рандомное место этой очереди, но не на первые 5 позиций к примеру. Каждые 10-15 боев очередь перемешивается, чтобы игрок не начал страдать вычислением и прогнозированием следующей карты. Более того, после дисконнекта пользователя очередь можно стирать. Второй вариант, посложнее - описать какой-нибудь параметризованный ГСЧ, но тут сложнее, ибо генерировать несколько одинаковых карт подряд он не должен. Первый вариант мне кажется проще, но если среди вас есть опытные математики, можете над вторым подумать) Примерно таким я вижу алгоритм выборки неповторяющихся карт.