Ciao, non mi sono chiari diversi punti:

- puoi definire meglio cosa intendi per "mescolare uniformemente"?

- il fatto che ci siano 3 distinti gruppi iniziali (che differiscono tra loro per qualche particolare caratteristica come hai specificato) influisce sul risultato, cioè sulla distribuzione fra gli N gruppi di output? Da quel che descrivi mi pare di no (o quantomeno non lo si capisce). Dal momento che dici di aver inserito tutti gli elementi dei 3 gruppi in un unico array "mescolato", mi fa intendere che quella specifica iniziale (la distinzione dei 3 gruppi iniziali) a questo punto non influisce sul risultato... allora mi chiedo perché l'hai menzionata inizialmente

- le 3 lunghezze dei relativi 3 gruppi possono essere diverse? Cioè i 3 gruppi iniziali possono per esempio essere composti da 8, 14 e 3 elementi?

- i gruppi in output devono avere lunghezze uguali o possono essere diverse? Eventualmente, se la divisione tot_elementi/N_gruppi_output da un resto, come ci si comporta?