# File lib/backports/1.8.7/array.rb, line 199
  def shuffle!
    raise TypeError, "can't modify frozen array" if frozen?
    size.times do |i|
      r = i + Kernel.rand(size - i)
      self[i], self[r] = self[r], self[i]
    end
    self
  end