SELECT *
FROM X
WHERE flags = 0
ORDER BY rand()
LIMIT 1
Questo recupera 1 riga casuale. Sostituisci 1 con N per ottenere N righe casuali.
Avvertenza:come altri hanno sottolineato, questo può essere lento in quanto richiede una scansione completa della tabella. Lo facevo con DB2, dove funzionava perfettamente per tabelle con centinaia di migliaia di righe, ma secondo il link in risposta di tereško , MySQL sembra degradarsi molto più velocemente.