adding a seedable pseudo random number generator