var iterate = function (list) { var offset = 0 return function () { if (offset === list.length) return null var len = list.length - offset var i = (Math.random() * len) | 0 var el = list[offset + i] var tmp = list[offset] list[offset] = el list[offset + i] = tmp offset++ return el } } module.exports = iterate