ruby-list 39588 からのスレッドより
Simple に
class Array def randomize sort_by{ rand(100) } end def randomize! replace randomize end end
速度を気にする場合
class Array def randomize! length.times do |i1| i2 = rand(length) t = self[i1] self[i1] = self[i2] self[i2] = t end end def randomize result = self.dup result.randomize! result end end