Uy.. josemi... eso sí que es tener "ojo"... tienes mucha razón con lo del array asociativo y shuffle()... Entonces me decido por... "array_rand()".. (elección personal)...
*******************************************
Ah.. acabo de enviar el script a las FAQ's, porque me parece que vale la pena.
*******************************************
Saludos