index.js 349 B

1234567891011121314151617181920
  1. 'use strict';
  2. module.exports = function (arr) {
  3. if (!Array.isArray(arr)) {
  4. throw new TypeError('Expected Array, got ' + typeof arr);
  5. }
  6. var rand;
  7. var tmp;
  8. var len = arr.length;
  9. var ret = arr.slice();
  10. while (len) {
  11. rand = Math.floor(Math.random() * len--);
  12. tmp = ret[len];
  13. ret[len] = ret[rand];
  14. ret[rand] = tmp;
  15. }
  16. return ret;
  17. };