Si desean mostrar imágenes de un directorio de su servidor de manera aleatoria, pues esta es una solución. Simplemente deberas configurar los tipos de imágenes que deseas que se muestren y el directorio donde están alojadas.

Algunas funciones usadas:

array_randSelecciona una o más entradas aleatorias de una matriz

opendirAbre un directorio

readdir — Devuelve el nombre del siguiente archivo leido desde el directorio

strrchr Encuentra la última aparición de un caracter en una cadena

unsetRemover una variable dada

Código

<?php
// extensiones a mostrar
$extensions = array('jpg','jpeg','gif','png','bmp');

// nombre del directorio
$folder_image_name = "/wp-content/uploads/upload/";

// ruta del directorio
$images_folder_path = $_SERVER['DOCUMENT_ROOT'].$folder_image_name;

// url del directorio
$url_to_folder = 'http://'.$_SERVER["SERVER_NAME"].$folder_image_name;

// array de imagenes
$images = array();

//srand((float) microtime() * 10000000); // Si es PHP Version < 4.2.0

// abrimos directorio y mostramos imagenes
if ($handle = opendir($images_folder_path)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {

// obtener extension del archivo
$ext = strtolower(substr(strrchr($file, "."), 1));

// almacenamos en el array
if(in_array($ext, $extensions)){
$images[] = $url_to_folder.$file;
}
}
}
closedir($handle);
}

if(!empty($images)){ // si tenemos algo que mostrar...
$rand_key = array_rand($images, 1);
$src = $images[$rand_key];
echo "<img src='".$src."' align='absmiddle'>";

// mostrar una segunda imagen diferente a la primera
unset($images[$rand_key]);
$rand_key = array_rand($images, 1);
$src = $images[$rand_key];
echo "<br /><br /><img src='".$src."' align='absmiddle'>";
}else{
// nada que mostrar
echo 'No se encontraron imagenes en <strong>'.$images_folder_path.'</strong>';
}
?>

Vía BitRepository