Well, you're not going to get 1.8 million unique three-lowercase-character strings, that's for sure.
There are a lot of ways to do this; here's one: build random strings and put them into a set until its length is 1800000.
Joined: Nov 06, 2000
3**26 -- the number of 3 letter combinations -- is bigger than 1.8 million.
Is being "random" what's important? Or do they just need to be unique? If you need 1.8 million unique strings then you could simply use the values "1" through "1800000". Obviously, those won't be random. If you want characters rather than numbers, look into BigInteger using a radix of 26, or code something yourself. You could also look into class java.util.UUID, although I doubt those are designed to be random, per se.