Because the seed can not be given as a parameter it is currently impossible to make deterministic test cases for unit testing with this implementation. This could be fixed by moving the seed getting to some static utility function and taking the seed value as a parameter