Каноническое решение в MySQL:
SELECT username
FROM books
ORDER BY RAND()
LIMIT 1;
Однако таблицы сортировки могут стоить очень . Если у вас большой стол, то что-то вроде этого может быть намного быстрее:
SELECT username
FROM books b CROSS JOIN
(SELECT COUNT(*) as cnt FROM books b) bb
WHERE rand() < 100 / cnt
ORDER BY rand()
LIMIT 1;