Det du gör är giltigt - det kommer att sortera resultaten i fallande ordning efter a
men slumpmässig ordning på banden.
Men för att göra vad du vill måste du först använda en underfråga för att få de senaste 100 posterna och sedan sortera resultaten av den underfrågan slumpmässigt med hjälp av en yttre fråga:
SELECT * FROM
(
SELECT * FROM table1
ORDER BY date DESC
LIMIT 100
) T1
ORDER BY RAND()