As of Java 7, you should no longer use Random. For most uses, the random number generator of choice is now ThreadLocalRandom. It produces higher quality random numbers, and it’s very fast. On my machine, it is 3.6 times faster than Random.
What if threads are short-lived and each thread asks for a random only once? Seems like the cost of initializing a thread-local random object could result in a higher cost than the contention of using a shared Random (though in such a case, their difference is almost certainly unsubstantial).