Method: Random::ArrayExtensions#shuffle!
- Defined in:
- lib/standard/facets/random.rb
#shuffle! ⇒ Object
As with #shuffle but modifies the array in place. The algorithm used here is known as a Fisher-Yates shuffle.
a = [1,2,3,4]
a.shuffle!
a #~> [2,4,1,3]
CREDIT Niel Spring
223 224 225 226 227 228 229 230 231 232 233 |
# File 'lib/standard/facets/random.rb', line 223 def shuffle! s = size each_index do |j| i = Random.number(s-j) #self[j], self[j+i] = self[j+i], self[j] tmp = self[j] self[j] = self[j+i] self[j+i] = tmp end self end |