### Question:
GHIntArrayList extends IntArrayList { public final GHIntArrayList shuffle(Random random) { int[] buffer = this.buffer; int max = size(); int maxHalf = max / 2; for (int x1 = 0; x1 < maxHalf; x1++) { int x2 = random.nextInt(maxHalf) + maxHalf; int tmp = buffer[x1]; buffer[x1] = buffer[x2]; buffer[x2] = tmp; } return this; } GHIntArrayList();  GHIntArrayList(int capacity);  GHIntArrayList(GHIntArrayList list); final GHIntArrayList reverse(); final GHIntArrayList fill(final int max, final int value); final GHIntArrayList shuffle(Random random); static GHIntArrayList from(int... elements);  }### Answer:
@Test public void testShuffle() { assertEquals(GHIntArrayList.from(4, 1, 3, 2), GHIntArrayList.from(1, 2, 3, 4).shuffle(new Random(0))); assertEquals(GHIntArrayList.from(4, 3, 2, 1, 5), GHIntArrayList.from(1, 2, 3, 4, 5).shuffle(new Random(1))); }