Originariamente inviato da garakkio
Parto dal presupposto che tu abbia già calcolati i pesi che ti interessa applicare (cosa che mi sembra esuli da questo topic).
Dunque, una volta che hai i pesi, puoi applicarli semplicemente creando un nuovo array, che ripeta ogni elemento per il numero di peso che gli hai attribuito. A quel punto, il semplice array_rand() applicato a tale array ti darà il risultato atteso.
Si, ma a regime è previsto che gli elementi siano migliaia e a loro volta sono degli array, viene una cosa mostruosa facendo così.