From: ktokita Date: 2005-07-02T02:39:55+09:00 Subject: [ruby-list:40902] Re: 配列をシャッフル んー、なんでreverseが入るのかがわからなかった reverseするのではなく、 通常 切った片方 下の部分を更に分割して下の部分を上にのせる この処理をすっかり忘れていました^^; ですが、再起の頭がすっかり駄目になった気がする^^; とりあえず、こんな感じでしょうか def shuffle1(a) if a.size > 3 then x = rand(a.size-1) b = a.slice!(0..x) a = shuffle1(a) else return a end return a+b end def shuffle(a, time=1) time.times{ a = shuffle1(a) } return a end array = ("a".."p").to_a p shuffle(array, 5)