Ebbene dal commento ti accontenti anche di una risposta teorica.
Se hai il tuo array con tutte le righe, usa array_unique()
per eliminare le righe duplicate, utilizzare shuffle()
per mescolarli e alla fine puoi prenderne una fetta con array_slice()
.
MODIFICA:
Puoi migliorarlo quando non selezioni già le righe duplicate, quindi non devi usare array_unique()
. Per questo utilizzare DISTINCT
. E se vuoi fare tutto in una query puoi fare qualcosa del genere:
SELECT DISTINCT column FROM table
ORDER BY RAND()
LIMIT 1000