var randomNumberPool=Class.create();randomNumberPool.prototype={initialize:function(c,a,b){this.min=c;this.max=a;this.length=a-c+1;this.current=0;this.values=[];this.shuffleAtRepeat=b?true:false;this._createValues();this.shuffle()},next:function(){var a=this.values[this.current];this.current=++this.current%this.length;if(this.current==0&&this.shuffleAtRepeat){this.shuffle()}return a},shuffle:function(){this._fisherYatesShuffle()},_fisherYatesShuffle:function(){var a,b;var c=this.length;while(c>1){c--;a=Math.floor(Math.random()*(c+1));b=this.values[a];this.values[a]=this.values[c];this.values[c]=b}},_createValues:function(){for(var a=this.min;a<=this.max;a++){this.values.push(a)}}};