Когда я вас правильно понял, вам нужна функция, которая:
Генерирует случайный цвет
Находит ближайший цвет в связанном список
Это правильно? Если это так, я бы рекомендовал работать со значением RGB, а затем я бы создал свою собственную метрику c для измерения расстояния между двумя цветами, например:
int distance(Color a, Color b) {
int redDistance = math.abs( a.red - b.red );
int greenDistance = math.abs( a.green - b.green );
int blueDistance = math.abs( a.blue - b.blue );
return redDistance + greenDistance + blueDistance;
}
После этого я бы перебирал все связанные цветов и найдите «ближайший» цвет из случайно сгенерированного.