Deberías darle la vuelta:
SELECT * FROM infos WHERE category=...
ORDER BY rate DESC, like DESC, RAND();
De esa forma, ordena por tasa, luego por me gusta y finalmente por orden aleatorio si la tasa y el me gusta son iguales.
Además, su ORDER BY original con RAND() no funciona porque usa dos cláusulas ORDER BY.