| var baseRandom = require('./_baseRandom'); | |
| 
 | |
| /** | |
|  * A specialized version of `_.shuffle` which mutates and sets the size of `array`. | |
|  * | |
|  * @private | |
|  * @param {Array} array The array to shuffle. | |
|  * @param {number} [size=array.length] The size of `array`. | |
|  * @returns {Array} Returns `array`. | |
|  */ | |
| function shuffleSelf(array, size) { | |
|   var index = -1, | |
|       length = array.length, | |
|       lastIndex = length - 1; | |
| 
 | |
|   size = size === undefined ? length : size; | |
|   while (++index < size) { | |
|     var rand = baseRandom(index, lastIndex), | |
|         value = array[rand]; | |
| 
 | |
|     array[rand] = array[index]; | |
|     array[index] = value; | |
|   } | |
|   array.length = size; | |
|   return array; | |
| } | |
| 
 | |
| module.exports = shuffleSelf;
 |