Due to the method of selecting random numbers, it's possible for strings like "010" to be returned, which Javascript interprets as 8, not 10.
Throughout the calculations we need to factor in the possibility we're accidentally parsing numbers with the wrong base, resulting in invalid values for vectors.
Avoid use in production until this is issue is handled.