Enumerable#shuffle
確かにあると便利ですよねぇ。僕も勝手に定義して使ってます。うちのはこんな感じです。
module Enumerable def shuffle() return self.to_a().dup().shuffle!() end end class Array def shuffle!() for i in 0...self.size j= i + rand(self.size-i) self[j], self[i]= self[i], self[j] end return self end end
最近教えてもらったアルゴリズムだったり。