いったん全部Listに突っ込んで乱数で一個ずつ取り出してListから削除して配列に前から順に入れるのがわかりやすい
ちょっと工夫すればインプレースでもできるけど考え方は全く同じ