Я согласен с sje397 выше, что совершенно случайные цвета могут в конечном итоге выглядеть неприятно. Вместо того, чтобы составлять длинный список красивых цветов, я бы предложил выбрать постоянную насыщенность + значение свечения и варьировать оттенок в зависимости от содержимого. Чтобы получить цвет RGB от цвета HSL, вы можете использовать нечто похожее на то, что описано в http://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB.
Вот пример (попробуйте в http://codepad.viper -7.com что-то, что работает, например, https://codepad.remoteinterview.io/ZXBMZWYJFO):
<?php
function hsl2rgb($H, $S, $V) {
$H *= 6;
$h = intval($H);
$H -= $h;
$V *= 255;
$m = $V*(1 - $S);
$x = $V*(1 - $S*(1-$H));
$y = $V*(1 - $S*$H);
$a = [[$V, $x, $m], [$y, $V, $m],
[$m, $V, $x], [$m, $y, $V],
[$x, $m, $V], [$V, $m, $y]][$h];
return sprintf("#%02X%02X%02X", $a[0], $a[1], $a[2]);
}
function hue($tstr) {
return unpack('L', hash('adler32', $tstr, true))[1];
}
$phrase = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
$words = [];
foreach (explode(' ', $phrase) as $word)
$words[hue($word)] = $word;
ksort($words);
foreach ($words as $h => $word) {
$col = hsl2rgb($h/0xFFFFFFFF, 0.4, 1);
printf('<span style="color:%s">%s</span> ', $col, $word);
}
?>