 <p>Simplest way is to use a <a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html" rel="nofollow"><code>List</code></a><sup>1</sup> to store your elements, and use <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Collections.html#shuffle%28java.util.List%29" rel="nofollow"><code>Collections.shuffle()</code></a> on it - and then take elements iteratively.</p> <p>The shuffle produces a random permutation of the list, so chosing items iteratively gives you the same probability to chose any ordering, which seems to be exactly what you are after.</p> <p>Code snap:</p> <pre><code>String[] picture = { "blue", "white", "red", "yellow" }; //get a list out of your array: List&lt;String&gt; picturesList = Arrays.asList(picture); //shuffle the list: Collections.shuffle(picturesList); //first picture is the first element in list: String pictureOne = picturesList.get(0); System.out.println(pictureOne); //2nd picture is the 2nd element in list: String pictureTwo = picturesList.get(1); System.out.println(pictureTwo); ... </code></pre> <hr> <p>(1) Simplest way to get the list from an array is using <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html#asList%28T...%29" rel="nofollow"><code>Arrays.asList()</code></a></p>