class Array # shuffle returns a newly shuffled array def shuffle sort_by { rand } end # shuffle! executes shuffle in place def shuffle! size.downto(1){ |n| push delete_at(rand(n)) } self end # get_ramdom return random element of the array def get_random slice(rand(size)) end # get_ramdom! remove and return random element of the array def get_random! slice!(rand(size)) end end