diff --git a/java/src/org/broadinstitute/sting/utils/Utils.java b/java/src/org/broadinstitute/sting/utils/Utils.java index 4b931d0bf..2eb55b4a3 100755 --- a/java/src/org/broadinstitute/sting/utils/Utils.java +++ b/java/src/org/broadinstitute/sting/utils/Utils.java @@ -372,6 +372,24 @@ public class Utils { } + /** Draw N random elements from list. */ + public static List RandomSubset(List list, int N) + { + if (list.size() <= N) { return list; } + + java.util.Random random = new java.util.Random(); + + int idx[] = new int[list.size()]; + for (int i = 0; i < list.size(); i++) { idx[i] = random.nextInt(); } + + Integer[] perm = SortPermutation(idx); + + List ans = new ArrayList(); + for (int i = 0; i < N; i++) { ans.add(list.get(perm[i])); } + + return ans; + } + /* TEST ME public static void main(String[] argv) { List l1 = new LinkedList();