You can try using the below code:
QUERY:
SELECT Name
FROM random AS r JOIN
(SELECT CEIL(RAND() *
(SELECT MAX(Id)
FROM random)) AS Id)
AS r1
WHERE r.Id>= r1.Id
ORDER BY r.Id ASC
LIMIT 1
Here, you can observe that the distribution of Ids is equal and that there can be gaps in the Id list as well.