class Array def randomize arr=self.dup arr.collect { arr.slice!(rand arr.length) } end def randomize! arr=self.dup result = arr.collect { arr.slice!(rand arr.length) } self.replace result end end x = [1, 2, 3, 4, 5] y = x.randomize # [3, 2, 4, 1 ,5] x.randomize! # x is now [3, 5, 4, 1, 2] class Array def pick_random self[rand(self.length)] end end