Rustで有名アルゴリズムを実装して、Rustについての理解を深めることが目的の連載です。今回扱うのは、配列のシャッフルについてです。最初に何も考えずに実装してみて、次に効率的に配列の要素をシャッフルするFisher–Yatesシャッフルを実装してみましょう。 Fisher–Yatesシャッフルを実装してみよう コンピューターにとって適当にシャッフルは難しい コンピューターは、人間よりも計算も速く正確に動いてくれるものですが、意外なことが苦手だったりします。そんな苦手なことの一つが「適当にシャッフルする」という作業です。 そもそも計算によって乱数を生成するのは簡単なことではありません。それで、さまざまな乱数生成アルゴリズムが提案されています。また、現在時刻やマウスの移動など、さまざまな物理現象を利用して、乱数生成を行う手法もあります。「適当さ」をコンピューターで再現するのは難しいものなので