public static final void shuffle(Object[] a,int start,int len,Random r){
  for (int i=start + len; i > 1; --i) {
    Object t=a[i];
    int j=r.nextInt(i);
    a[i]=a[j];
    a[j]=t;
  }
}

public static final void shuffle ( Object [ ] a , int start , int len , Random r ) { for ( int i = start + len ; i > 1 ; -- i ) { Object t = a [ i ] ; int j = r . nextInt ( i ) ; a [ i ] = a [ j ] ; a [ j ] = t ; } }
randomly permute the contents of a range an array .
