| 
									
										
										
										
											2013-12-03 00:44:42 -07:00
										 |  |  | /*jshint -W054 */ | 
					
						
							|  |  |  | (function (exports) { | 
					
						
							|  |  |  |   'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // http://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array
 | 
					
						
							|  |  |  |   function shuffle(array) { | 
					
						
							|  |  |  |     var currentIndex = array.length | 
					
						
							|  |  |  |       , temporaryValue | 
					
						
							|  |  |  |       , randomIndex | 
					
						
							|  |  |  |       ; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // While there remain elements to shuffle...
 | 
					
						
							|  |  |  |     while (0 !== currentIndex) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       // Pick a remaining element...
 | 
					
						
							|  |  |  |       randomIndex = Math.floor(Math.random() * currentIndex); | 
					
						
							|  |  |  |       currentIndex -= 1; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       // And swap it with the current element.
 | 
					
						
							|  |  |  |       temporaryValue = array[currentIndex]; | 
					
						
							|  |  |  |       array[currentIndex] = array[randomIndex]; | 
					
						
							|  |  |  |       array[randomIndex] = temporaryValue; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return array; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   exports.knuthShuffle = shuffle; | 
					
						
							| 
									
										
										
										
											2014-09-28 02:22:08 -07:00
										 |  |  | }('undefined' !== typeof exports && exports || 'undefined' !== typeof window && window || global)); |