Method: Array#sample
- Defined in:
- lib/vendor/backports-3.3.5/lib/backports/1.9.1/array/sample.rb
#sample(n = Backports::Undefined) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.1/array/sample.rb', line 5 def sample(n = Backports::Undefined) return self[Kernel.rand(size)] if n == Backports::Undefined n = Backports.coerce_to_int(n) raise ArgumentError, "negative array size" if n < 0 n = size if n > size result = Array.new(self) n.times do |i| r = i + Kernel.rand(size - i) result[i], result[r] = result[r], result[i] end result[n..size] = [] result end |