Anche se son sicuro che non sia la soluzione migliore, prova così:
Codice PHP:
<html>
<head>
<script language="Javascript">
<!--
// url delle immagini disponibili.
var images = new Array(
'url1',
'url2',
'url3',
'url4',
'url5'
);
// array che conterrà indici casuali.
//In questo caso avrà lunghezza 3 (n° di immagini da visualizzare).
var indexes = new Array(3);
// funzione che estrae un indice random tra gli indici dell'array di immagini
function getRandomIndex(myIndex) {
var value = Math.floor(Math.random() * images.length);
// se ti interessa visualizzare immagini differenti (almeno nel caso in cui
// la cardinalità di indexes sia minore o uguale di quella di images), lascia questo ciclo.
// altrimenti puoi eliminarlo/commentarlo
if (images.length>myIndex) {
for (k=0;k<myIndex;k++) {
if (indexes[k] == value) {
return getRandomIndex(myIndex);
}
}
}
return value;
}
//-->
</script>
</head>
<body>
<div>
<script language="javascript" type="text/javascript">
<!--
for (i=0; i<indexes.length; i++) {
indexes[i] = getRandomIndex(i);
document.write('\n[img]' + images[indexes[i]] + '[/img]');
}
//-->
</script>
</div>
</body>
</html>
Personalmente non amo molto gli script all'interno del body, tantomeno all'interno di qualche div, ma dovrebbe funzionare...
Non è sicuramente la miglior soluzione perché man mano che estraggo degli indici random, la funzione potrebbe andare a ripescarli per un numero indeterminato di volte, prima di trovarne uno "libero".
Naturalmente i problemi sono enfatizzati nel caso in cui il numero degli elementi di indexes sarà minore ma vicino (o uguale, o maggiore) a quella di images.
Ora sono di fretta, magari più tardi proverò ad ottimizzare la scelta degli indici in qualche altro modo.
Ciao!