Array Ruby

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