Wie wäre es damit?
Zeile 20: Zuerst wird ein Array aufsteigend mit Zahlen von 0-99 gefüllt.
Zeile 30: Zufallszahl n wird ermittelt - und zwar nur von den verbleibenden Zahlen x.
Die erhobene Zufallszahl wird mit der letzten Zahl im Array getauscht, sofern eh nicht bereits identisch mit der bestehenden Zahl.
Das sorgt dafür, dass nur noch verbleibende Zahlen im Array 0-x vorhanden sind.
Zeile 40: index x wird um 1 verringert. Das wird solange wiederholt, bis x den Wert -1 erreicht hat.
Die Routine benötigt etwa 4-5 Sekunden.
EDIT: Mac Bacon war schneller