perhaps it doesn't matter here but a good habit is to use ThreadLocalRandom