Forse i record ammissibili per la tua query sono pochi.
Comunque RAND() accetta tranquillamente un qualunque valore, ma devi fare in modo che sia diverso per ogni record.
usa un RAND(campo_id_di_una_tabella_usata_nella_query)