Если это просто "несколько случайно", то вы можете просто сгенерировать все варианты, которые хотите использовать. Затраты ЦП / памяти на необходимость создания образов на лету быстро превысят время, необходимое для предварительной сборки.
Если вы ДЕЙСТВИТЕЛЬНО не хотите, чтобы статические версии сидели без дела, просто используйте вызовы image???()
и не указывайте имя файла для вывода. Это отправит готовое изображение непосредственно клиенту, поэтому вы можете просто указать правило css:
div.randombg {
background-image: url(/randomimage.php);
}
И сценарий сводится к:
<?php
... GD stuff to build image here ...
header("Content-type: image/jpeg");
imagejpg($gdhandle);
exit();
Если вы хотите, чтобы фон оставался относительно постоянным для каждого пользователя, вы можете установить флаг в файле cookie / сеансе, чтобы указать сценарию создания изображения отправлять «неизмененные» заголовки, чтобы клиент мог повторно использовать ранее встроенный образ и не заставляйте его меняться при каждом попадании.