use specific random generator object to allow more easily changing it and avoid unwanted side-effects