codice:
// array delle estensioni, sono maiuscole e minuscole perchè se sei su linux hanno significato // diverso
$estensioni = array('jpg', 'JPG', 'jpeg', 'JPEG', 'png', 'PNG');

$immagini = array();

// cerco e infilo tutte le immagini dell'estensioni fornite in un array
foreach($estensioni as $estensione) {
  $immagini = array_merge(glob('path/*.'.$estensione), $immagini);
}

// elimino i duplicati che potrei aver trovato nel caso mi trovassi su win dove l'estensione 
// maiuscola e minuscola hanno lo stesso significato.
$immagini = array_unique($immagini);

print_r($immagini); // questo è solo per debug per vedere quali e quante immagini hai estratto
                          // il percorso è assoluto, dovrai sostituire la document_root con il 
                          // percorso  http per poterle vedere via web

// funzione che passi ad array_map per modificare tutti gli elementi dell'array
function replace_percorso($str) {
  return str_replace($_SERVER['DOCUMENT_ROOT'], 'http://www.tuosito.com/');
}

$immagini = array_map($immagini, "replace_percorso");

shuffle($immagini);  // mischio il contenuto dell'array 

echo $immagini[0]; // immagine random.