Apa yang Anda lakukan valid - ia akan mengurutkan hasil dalam urutan menurun dengan a
tetapi mengacak urutan ikatan.
Namun untuk melakukan apa yang Anda inginkan, Anda harus terlebih dahulu menggunakan subkueri untuk mendapatkan 100 catatan terbaru dan kemudian mengurutkan hasil subkueri itu secara acak menggunakan kueri luar:
SELECT * FROM
(
SELECT * FROM table1
ORDER BY date DESC
LIMIT 100
) T1
ORDER BY RAND()