Roulette Wheel Selection / Fitness proportionate selection
See this
Usage
var RouletteWheel = ; //requires each individual have a name and val for fitnessvar fitnesses = name:"a" val:100 name:"b" val:10 name:"c" val:1 name:"d" val:01 name:"e" val:001 //optionally pass in precision for decimal fitness valuesvar rw = fitnesses:fitnesses precision:3 //insert another fitnessrw; //returns the selected individual and the index in your original fitness array//ex: { index: 0, target: { name: 'a', val: 100 } }console;