Class: Array
- Inherits:
-
Object
- Object
- Array
- Defined in:
- lib/extensions/array.rb
Instance Method Summary collapse
Instance Method Details
#sample(n = nil) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/extensions/array.rb', line 3 def sample(n = nil) #based on code from https://github.com/marcandre/backports size = self.length return self[Kernel.rand(size)] if n.nil? n = n.to_int 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 |