This solution first creates a BigInteger with a value of 2 ^ 511, and then adds a value from 0 to 2 ^ 511 - 1:
StringBuilder builder = new StringBuilder("1");
for (int bit = 0; bit < 511; bit++) builder.append("0");
BigInteger value = new BigInteger(builder.toString(), 2).add(new BigInteger(511, new Random()));
source
share