question: public TreeMap < Float , List < List < Integer > > > packFirstFitShuffled ( ) { RandomDataGenerator rnd = new RandomDataGenerator ( ) ; int [ ] permutation = rnd . nextPermutation ( _items . size ( ) , _items . size ( ) ) ; List < Integer > shuffledItems = new ArrayList < Integer > ( _items . size ( ) ) ; List < Float > shuffledWeights = new ArrayList < Float > ( _items . size ( ) ) ; for ( int ix : permutation ) { shuffledItems . add ( _items . get ( ix ) ) ; shuffledWeights . add ( _itemWeights . get ( ix ) ) ; } return packFirstFit ( shuffledItems , shuffledWeights ) ; }
target:  shuffling the items to make some potential for having bins of different sizes when consecutive columns are of close cardinalities