Was Sie tun, ist gültig - es ordnet die Ergebnisse in absteigender Reihenfolge nach a
aber zufällige Reihenfolge der Bindungen.
Um jedoch das zu tun, was Sie möchten, müssen Sie zuerst eine Unterabfrage verwenden, um die letzten 100 Datensätze zu erhalten, und anschließend die Ergebnisse dieser Unterabfrage mithilfe einer äußeren Abfrage zufällig sortieren:
SELECT * FROM
(
SELECT * FROM table1
ORDER BY date DESC
LIMIT 100
) T1
ORDER BY RAND()