Gracias Cluster... esa es la palabra que no encontraba... "Optimización".
Ah... la función array_rand() tiene un segundo parámetro que sirve para indicar cuántos elementos del array se van a seleccionar aleatoriamente. Por eso, si necesitas por ejemplo 3 elementos, sólo haces algo así:
$claves=array_rand($banners, 3);
$claves será un array que contiene los índices aleatorios que se han tomado del array $banners. O sea que para acceder a los elementos del array banners (aleatoriamente) haces esto:
$banners[$claves[0]];
$banners[$claves[1]];
$banners[$claves[2]];
Me parece mejor que desordenar todo el array, pues array_rand() sólo toma índices existentes. O sea que si tu array no tiene los índices consecutivos, algo así:
$banners[0]="algo";
$banners[1]="otro";
$banners[5]="otro más";
array_rand($banners (, número)), sólo elegirá aleatoriamente entre 0, 1 y 5.
Espero se haya entendido.
Más información en :
http://www.php.net/manual/es/function.array-rand.php
Saludos