Facebook weighted random spike

PLEASE look over this before merging. the spike is ugly, and in desperate need of refactoring but proof of concept is there. from here on out, methods can be continually added to modify the weights. any ideas for weight modification is appreciated. 
coverage is lowered because of the private methods (should i test them anyway?)

me writing the code for this:
![](http://img1.wikia.nocookie.net/__cb20130127202120/smuff/images/9/9d/Haters_gonna_hate_horse.gif)