Для смешивания цветов вы можете получить отдельные значения R, G, B с помощью либо getRed (), getBlue () и т. Д., Либо getColorComponents (), затем взять среднее значение для каждого и создать новый цвет. Вы также можете усреднить значения HSB. Вы также можете играть с альфа (прозрачность), рисуя каждый оригинальный цвет с альфа 0,5. Однако в какой-то момент все эти тонкие сочетания становятся сложными для пользователя, чтобы понять. Вместо этого вы можете использовать шаблон (например, полосы) с оригинальными цветами.
Я экспериментировал со многими способами выбора «хороших» случайных цветов, и не добился большого успеха. Лучшая техника использовала значения HSB. Допустим, вам нужно 5 цветов. Разделите 360 градусов на 5 и выберите оттенки «вокруг» цветового круга под этими углами. Это работает хорошо. если вам нравятся действительно яркие, полностью насыщенные цвета.
IMO, рассмотрите возможность жесткого кодирования, по крайней мере, "самых распространенных" цветов участков в нечто, что выглядит хорошо. Выбирайте цвета наугад как можно меньше.