shuffle_with_subgroup_formation function

Compose shuffling function based on already available subgrouping and allocation information