core :: AbstractArray :: shuffle
var a = new Array[Int]
a.shuffle
assert a.is_empty
a.add 1
a.shuffle
assert a == [1]
a.add 2
a.shuffle
assert a == [1,2] or a == [2,1]ENSURE self.shuffle.has_exactly(old(self))
	# Reorder randomly the elements in self.
	#
	# ~~~
	# var a = new Array[Int]
	#
	# a.shuffle
	# assert a.is_empty
	#
	# a.add 1
	# a.shuffle
	# assert a == [1]
	#
	# a.add 2
	# a.shuffle
	# assert a == [1,2] or a == [2,1]
	# ~~~
	#
	# ENSURE self.shuffle.has_exactly(old(self))
	fun shuffle
	do
		for i in [0..length[ do
			var j = i + (length-i).rand
			var tmp = self[i]
			self[i] = self[j]
			self[j] = tmp
		end
	end
					lib/core/math.nit:512,2--538,4