use proper random generator instead of constantly pulling from random_device