Random rnd = new Random(); // @todo need a different seed, this is now time based and I
// would prefer something different, like an object address
// get the random number, instead of getting an integer and converting that to base64 later,
// we get a string and narrow that down to base64, use the top 6 bits of the characters
// as they are more random than the bottom ones...
rnd.nextBytes(VALUE); // get some random characters
VALUE[3] = BASE64[((VALUE[3] >> 2) & 0x3f)];
VALUE[4] = BASE64[((VALUE[4] >> 2) & 0x3f)];
VALUE[5] = BASE64[((VALUE[5] >> 2) & 0x3f)];
VALUE[6] = BASE64[((VALUE[6] >> 2) & 0x3f)];
VALUE[7] = BASE64[((VALUE[7] >> 2) & 0x3f)];