El limit no es el problema, la cuestion es que cuando tu haces:
Código:
SELECT * FROM table ORDER BY RAND()
Como bien dice la funcion ordenas de forma alatoria tus registros, luego al tu darle LIMIT X, solo lo que hace es devolverte esas X Filas, si no te devolveria toda la tabla, y como puedes ver es para 300,000 registros.
Si hay problemas con tablas de 150 registros creo o el ordenador es muy lento, o esta mal optimizado su servidor de bases de datos ya que 150 registros en MySQL son muy pocos, no creo que pasen de 50kb de espacio y eso para cualquier ordenador de hoy en dia es una operacion de menos de 0.01 segundos.
Saludos.