В общем у нас есть очередность ходов в игре. И игроки ходят в зависимости от инициативы.
Допустим.
Игрок 1 = 12 инициативы.
Игрок 2 = 7 инициативы.
Игрок 3 = 5 инициативы
Шаг инициативы = 5. Так как это минимум
Ходит игрок и у него отнимается шаг.
ход 1: 7(12-5) 7 5
Перед вторым ходом инициатива равна 7 у 1-го и 2-го игрока.
Тут нужен рандом, который зависит от new Random(номер хода).Next(2).
Так вычисляется на сервере, параллельно тоже надо вычислять на клиенте предполагаемые ходы.