Bạn nên xoay chuyển nó:
SELECT * FROM infos WHERE category=...
ORDER BY rate DESC, like DESC, RAND();
Bằng cách đó, nó sắp xếp theo tỷ lệ, sau đó thích và cuối cùng là ngẫu nhiên nếu tỷ lệ và lượt thích bằng nhau.
Ngoài ra ORDER BY ban đầu của bạn với RAND () không hoạt động vì bạn sử dụng hai mệnh đề ORDER BY.