Tach.
Diese Art des Mischens liefert dir keine wirklich zufällige Verteilung! Einige der n! möglichen Sequenzen sind mit deiner Vorgehensweise wahrscheinlicher als andere.
hast Du das mal getestet? Ich habe diesen Algorithmus als "Standard-Algorithmus" zum Mischen gefunden.
Das sieht man schon ohne Testen:
In jedem Durchlauf erhält man mit deinem Algorithmus eine von n (= Anzahl der Elemente im Array) möglichen Kombinationen. Aus n Druchläufen also insgesamt n^n Möglichkeiten.
Stell dir das Mischen nun einfach so vor, daß du aus deinem Originalarray das erste Element nimmst und dieses an beliebige Stelle in einem neuen Array kopierst. Da dieses neue Array am Anfang leer ist, hast du die freie Auswahl d. h. n Möglichkeiten. Für das nächste Element sind es nur noch n-1 Möglichkeiten, für das übernächste n-2, ... Du hast also n! Möglichkeiten, die n Elemente neu anzuordnen.
Für alle n > 1 ist n^n > n! und außerdem ist n! nicht in jedem Fall ein ganzzahliges Vielfaches von n^n. Mit deinem Algorithmus generierst du also mehr Anordungen als unterschiedliche Anordnungen existieren. Die überschüssigen Varianten verteilen sich aber nicht gleichermaßen, denn n! teilt wie gesagt n^n nicht immer ohne Rest.
Once is a mistake, twice is jazz.