Lo que tienes que hacer es generar el array... el resto lo dejas igual que como estaba...
En tu caso generas el array desde una consulta a la BD.
Acá te pongo un ejemplo de lo que tienes que hacer
Código PHP:
//Primero, guardamos en un array bidimensional el nombre de archivo de la imagen y el link hacia donde debe enviarnos al hacerle click.
$i = 0;
while($row = mysql_fetch_array($result)){
$banners[$i]['imagen'] = $row['campo_imagen'];
$banners[$i]['url'] = $row['campo_url'];
$banners[$i]['alt'] = $row['campo_alt'];
$i++;
}
//Si tenemos una versión de PHP menor a la 4.2.0, tenemos que inicializar el generador de números aleatorios.
srand((float) microtime() * 10000000);//si es 4.2.0 o mayor, no hace falta esta lína.
//Utilizamos la función array_rand() para elegir un índice aleatorio
$id_banner = array_rand($banners);
$banner_imagen=$banners[$id_banner]['imagen'];
$banner_url=$banners[$id_banner]['url'];
$banner_alt=$banners[$id_banner]['alt'];
//Y para utilizarlo:
echo "<a href=\"$banner_url\"><img src=\"$banner_imagen\" alt=\"$banner_alt\"></a>";
Saludos