Для случайного цвета RGB нам потребуются три числа от 0 до 255, а для цвета в формате HSL нам понадобится одно число от 0 до 360 и два числа от 0 до 100.
Если нам нужен случайный HEX-цвет, нам понадобится число от 0 до 16777215, которое мы затем преобразуем из десятичного в шестнадцатеричный.
RGB
Код PHP для случайного цвета RGB будет выглядеть так:
<?php
echo 'rgb(' . rand(0, 255) . ', ' . rand(0, 255) . ', ' . rand(0, 255) . ');';
В JavaScript Math.random возвращает число от 0 до 1, поэтому нам нужно умножить это число на 255, чтобы получить случайные числа от 0 до 255.
<script>
alert('rgb(' + Math.floor((Math.random() * 255)) + ', ' + Math.floor((Math.random() * 255)) + ', ' + Math.floor((Math.random() * 255)) + ');');
</script>
ВШЛ
В PHP мы можем получить случайный цвет HSL следующим образом:
<?php
echo 'hsl(' . rand(0, 360) . ', ' . rand(0, 100) . '%, ' . rand(0, 100) . '%);';
В JavaScript нам нужно снова умножить возвращаемое значение из Math.random, на этот раз с 360 для первого числа и 100 для следующих чисел.
<script>
alert('hsl(' + Math.floor((Math.random() * 360)) + ', ' + Math.floor((Math.random() * 100)) + '%, ' + Math.floor((Math.random() * 100)) + '%);');
</script>
Шестнадцатеричный
Чтобы получить случайный HEX-цвет в PHP, мы сначала создаем случайное число между 0–16777215 (0xFFFFFF) с помощью mt_rand, а затем преобразуем это десятичное число в шестнадцатеричное.
Поскольку для цвета HEX всегда требуется 3 или 6 цифр, нам нужно будет дополнить строку шестизначным шестнадцатеричным значением с помощью str_pad.
<?php
echo '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);
Для лучшего обзора я разделил код Javascript на несколько строк:
<script>
var randomNumber = Math.floor((Math.random() * 16777215));
var randomHex = randomNumber.toString(16);
var randomHexColor = randomHex.padStart(6, 0);
alert('#' + randomHexColor);
</script>