>>282
あなたの論法でいくと一回ごとに曲の番号を附け変えなければ
ならないことになりませんか。
たとえば、一回目で123という乱数がでたとすると、
123番以降の曲の番号を1番ずつさげて、124番の曲を
123番に以下1000番を999番にしないと、次回
1〜999迄の乱数でよいことにはならないと思いますよ。
以下同様に1回ごとに曲の番号を付け替える必要があり
ます。
私が考えるには、あらかじめ1から1000迄の
番号を振った1000個の箱を作っておいて、
1曲目から999曲目までは、毎回1〜1000の乱数
を毎回発生させ、その発生した乱数に該当する箱に
その曲の番号を収めるというやりかたがよいのでは
ないかと思います。
たとえば1番目の曲に123という乱数がでたならば
123番目の箱に「1曲目」と登録し、2番目の曲
の乱数が3ならば、3番目の箱に「2曲目」と登録して
1000番目の箱まですべて登録します。
この場合いつも1〜1000迄の乱数を発生させます
から、重複する場合(例えば254曲目に123番が出る)
には、その番号の箱が使用済みかどうかチェックして
もし使用済みならば、あらためて乱数を発生させる
ことにすればいいのです。
こうすると、コンピュータのプログラムも
見通しよく、簡単に書けると思います。
一回ごとに乱数の幅を1だけ狭めるという処理と
番号を付け替える処理の手間を考えれば多分予め
作った箱にいれていく方が、簡単だろうと思います。