Collections.shuffle(a) magic?
<p>Magic after<br>
System.out.println("*****");
Collections.shuffle(a);</p>

<p>~$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)</p>

<pre><code>public static void main(String[] args) {

        List&lt;Integer&gt; a = Arrays.asList(1,  3,  5, 9, 14);
        Collections.shuffle(a);

        System.out.println(a);

        List&lt;Integer&gt; b = a.subList(0, a.size() - 1);
        List&lt;Integer&gt; b1 = new ArrayList&lt;&gt;(a.subList(0, a.size() - 1));
        System.out.println(b);
        System.out.println(b1);

        System.out.println("*****");
        Collections.shuffle(a);
        System.out.println(a);

        Collections.shuffle(b);
        System.out.println(b);

        Collections.shuffle(b1);
        System.out.println(b1);
}

[14, 1, 9, 3, 5]
[14, 1, 9, 3]
[14, 1, 9, 3]
*****
[14, 9, 3, 5, 1]
[3, 14, 9, 5]
[1, 14, 9, 3]
</code></pre>

<p>b after shuffle(a) not eq b after a.subList(0, a.size() - 1); 
\</p>

<p>UPD</p>

<p><strong>Yep! step by step! 1) create a 2) create b sublist a 3) shuffle(a) Why shuffle(a) modify b ?</strong> </p>

<p>UPD 2 </p>

<p><strong>Why is correct ?  Why this is true when I shuffle b I change the order in a ?</strong></p>

<pre><code>    public static void main(String[] args) {
        List&lt;Integer&gt; a = Arrays.asList(1,  3,  5, 9, 14);
        Collections.shuffle(a);
        System.out.println(a);
        List&lt;Integer&gt; b = a.subList(0, a.size() - 1);
        System.out.println(b);
        System.out.println("*****");
        Collections.shuffle(b);
        System.out.println(a);



        System.exit(0);
}

[1, 9, 3, 5, 14]
[1, 9, 3, 5]
*****
[3, 9, 5, 1, 14]
</code></pre>