Originariamente inviato da daniele_dll
potresti provare un altra soluzione, usando solo 2 query, senza andare a lavorare direttamente sull'array però non so qual'è la più performante tra le due

fai una prima query con un count, qualcosa tipo
SELECT COUNT(*) FROM tabella

dopo di che ti calcoli il 10% di quel valore restituito, quindi
$records_da_estrarre = ($percentuale / 100) * $count_query;

e poi fai
SELECT * FROM tabella LIMIT $records_da_estrarre ORDER BY RAND()

però provala, non ricordo se ci sono risultati strani accoppiando rand e limit
solo una piccola distrazione:
SELECT * FROM tabella ORDER BY RAND() LIMIT $records_da_estrarre;

ma per il resto e' perfetta, grazie mille !!!