Ну можно же счетчики завести и разделить логику, но с массивом данных круче вариант
Чтобы реализовать такое решение нужно чуть больше, чем счётчики, если ты просто будешь считать, что нужно максимум 30 красных и вычитать счётчик после каждого красного актора, опять же при рандоме нет никакой гарантии, что все персонажи не будут одного цвета (или, что ещё интереснее, сначала все одного, а в конце - все другого. т.е. здесь вообще противопоказан рандом, а если кто-то решится его использовать, то нужно гарантировать, что на каждые X персонажей одного цвета обязательно нужно заспаунить Y другого. Как счётчики узнают про выполнение будущего рандома? Никак! Изменять вероятность в зависимости от значения счётчиков? Чересчур переусложнено :)