Как разделить количество игроков на 2 команды случайным образом несколько раз, каждый раз по-разному?
=====================================================================================================

Допустим, у меня 4 игрока, поэтому все комбинации следующие:  

`[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]`

Однако, поскольку сторона команды не учитывает, существует только 3 различные комбинации:

Когда количество сыгранных игр превышает количество комбинаций, оно должно начинаться заново ... то есть случайным образом выбирается одна из трех комбинаций, случайным образом выбирается следующая и так далее ...

Но есть поворот ... и мои математические навыки идут довольно далеко на юг, когда число игроков нечетное, и один из игроков должен отдохнуть одну игру. Итак, с 5 игроками все комбинации совпадают (последний номер - это отдыхающий игрок):

Одна вещь, которая пришла в голову, состояла в том, чтобы дать каждому игроку уникальное значение (10 ^ x), например:

... и затем при циклическом формировании команд проверяют, равно ли одно общее значение команды последним значениям.

Может кто-нибудь математически / более талантливо, пожалуйста, помогите мне с этой проблемой кодирования. Спасибо!

Использование значений является хорошей идеей, но если вы сделаете их битовыми масками, легче будет проверить, какие игроки были подобраны.
например

Проверяя маску с другим игроком, можно проверить, были ли они уже связаны, так как у них уже есть собственное значение маски, они никогда не смогут соответствовать себе.
Что касается случайного фактора, я думаю, что самый простой способ - сначала создать все комбинации, как вы это делали в своем примере, и использовать массив этих комбинаций в качестве основы для выбора случайного совпадения.
Если вы считаете, что этот подход является хорошим способом, но у вас возникли проблемы с его реализацией, я могу попробовать составить пример кода.

**Edit** вот пример кода, надеюсь, что комментарии помогут разобраться в их значении
**Edit2** изменились командные комбинации



Для четных случаев просто выберите числа, которые вы не использовали случайным образом, и составьте команды.

Для нечетных случаев, выберите число случайным образом, чтобы сидеть вне. Тогда оставшиеся числа похожи на четный случай.