To, co robisz, jest prawidłowe - uporządkuje wyniki w kolejności malejącej według a
ale wybierz losowo kolejność remisów.
Jednak aby zrobić to, co chcesz, musisz najpierw użyć podzapytania, aby uzyskać najnowsze 100 rekordów, a następnie losowo posortować wyniki tego podzapytania za pomocą zapytania zewnętrznego:
SELECT * FROM
(
SELECT * FROM table1
ORDER BY date DESC
LIMIT 100
) T1
ORDER BY RAND()