I am trying to do a pvp event in my game server which uses 3 zones to do it randomly. I use the following code but always is returning me the values 1 and 2 and repeated as well. I need some sequence like this for example: 3-2-1-2-1-3 or something that never repeats the same number.
int random = Rnd.get(1, 3);
if (random == 1)
{
    setstartedpvpzone1(true);
}
if (random == 2)
{
    setstartedpvpzone2(true);
}
if (random == 3)
{
    setstartedpvpzone3(true);
}
this is what i get in rnd:
public final class Rnd
{
    /**
     * This class extends {@link java.util.Random} but do not compare and store atomically.<br>
     * Instead it`s using a simple volatile flag to ensure reading and storing the whole 64bit seed chunk.<br>
     * This implementation is much faster on parallel access, but may generate the same seed for 2 threads.
     * @author Forsaiken
     * @see java.util.Random
     */
    public static final class NonAtomicRandom extends Random
    {
        private static final long serialVersionUID = 1L;
        private volatile long _seed;
        public NonAtomicRandom()
        {
            this(++SEED_UNIQUIFIER + System.nanoTime());
        }
        public NonAtomicRandom(final long seed)
        {
            setSeed(seed);
        }
        @Override
        public final int next(final int bits)
        {
            return (int) ((_seed = ((_seed * MULTIPLIER) + ADDEND) & MASK) >>> (48 - bits));
        }
        @Override
        public final void setSeed(final long seed)
        {
            _seed = (seed ^ MULTIPLIER) & MASK;
        }
    }
and rnd.get:
/**
 * Gets a random integer number from min(inclusive) to max(inclusive)
 * @param min The minimum value
 * @param max The maximum value
 * @return A random integer number from min to max
 */
public static final int get(final int min, final int max)
{
    return rnd.get(min, max);
}
 
     
     
     
     
     
    