2nd draft

Full solution, implemented the swapping function for roulette wheel
approach. Though have to try to enhance it.