В моей игре на поле генерируются шарики разных цветов.

Цвет каждому шарику задаётся с помощью простой функции:
Color RandomColor()
{
float r = (float)mRandom.GetRandomNumber(0, 1f);
float g = (float)mRandom.GetRandomNumber(0, 1f);
float b = (float)mRandom.GetRandomNumber(0, 1f);
float a = (float)mRandom.GetRandomNumber(0.7, 1);
return new Color(r, g, b, a);
}
Игроки жалуются на то что иногда шарики слишком похожи по цвету и их не отличить.

Я знал об этом и считал что это добавляет игре интереса, но игроки считают иначе и их это очень бесит. Как мне изменить функцию таким образом чтобы исключить подобные ситуации? Будет ли эффективно сравнивать rgba значения шариков и в случае близких значений генерировать цвет заново?