Che ne dici di questo:
SELECT *
FROM users
ORDER BY RAND()
HAVING RAND() * 1000 < 10
La clausola WHERE RAND() * 1000 < 10
sceglie casualmente di includere ogni riga con una probabilità dell'1%. Non è proprio una LIMIT variable
clausola ma farà più o meno la stessa cosa.