diff --git a/src/main/java/com/github/uderscore/_.java b/src/main/java/com/github/uderscore/_.java
index <HASH>..<HASH> 100644
--- a/src/main/java/com/github/uderscore/_.java
+++ b/src/main/java/com/github/uderscore/_.java
@@ -414,8 +414,7 @@ public final class _ {
     }
 
     public static <E> List<E> shuffle(final List<E> list) {
-        final List<E> shuffled = new ArrayList<E>(list.size());
-        Collections.copy(list, shuffled);
+        final List<E> shuffled = new ArrayList<E>(list);
         Collections.shuffle(shuffled);
         return shuffled;
     }
diff --git a/src/test/java/com/github/underscore/_Test.java b/src/test/java/com/github/underscore/_Test.java
index <HASH>..<HASH> 100644
--- a/src/test/java/com/github/underscore/_Test.java
+++ b/src/test/java/com/github/underscore/_Test.java
@@ -257,6 +257,16 @@ _.min(numbers);
     }
 
 /*
+_.shuffle([1, 2, 3, 4, 5, 6]);
+=> [4, 1, 6, 3, 5, 2]
+*/
+    @Test
+    public void shuffle() {
+        final List<Integer> result = _.shuffle(asList(1, 2, 3, 4, 5, 6));
+        assertEquals(6, result.size());
+    }
+
+/*
 _.sample([1, 2, 3, 4, 5, 6]);
 => 4
Added test for the shuffle