from the
API, which if you don't know how to use,
you should learn:
"If two instances of Random are created with the same seed, and the same sequence of method calls is made for each, they will generate and return identical sequences of numbers."
the value you use when creating the Random object does NOT set the size of the returned value, it just sets the seed value. i think what you need to do is create your random class with no value, and then when you call nextInt(), pass 256 in there.
i'm not sure why you are doing the bit shifting - can you explain that?
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors