Precision changes precision and max doesn't modify options object

Before this modification precision was completely inactive. Additionally if random.number was repeatedly called with the same options object, the max value was incremented by one after *each* call, which leads to confusing results.

Also removed unneeded initialization, which was redundant because of the checks later on.