Nice alternative!
Though it can be used with simple arrays only (containing text and numbers, not references).
I did the same "histogram" here with '$pseudoshuffle_with_hash'. And I'm getting different results every time, because 'srand(CONST)' doesn't influence hash. But outputs are similar. Kinda symmetric. I paste here two runs:
3)
A A A . . . C C C C C . . . . . E E E . . . G G G G G . . . . . . . .
+. . I I I I I
A A A A A . . . C C C C C C C C C C E E E . . . . . G G G G G I I I I
+I I I I I
A A A . . . . . C C C C C . . . . . E E E E E . . . . . . . . . . . .
+I I I I I
A A A A A . . . . . . . . . . . . . . E E E E E . . . . . G G G G G G
+G G G
A A A A A A A A A A . . . . . E E E E E . . . . . . . . . G G G G G G
+G G G G
A A A A A . . . . . . . . . . . . . . . . . . E E E E E E E E E E . .
+. . .
A A A . . . C C C C C . . . . . E E E . . . G G G G G . . . . . . . .
+. I I I I I
A A A A A . . . C C C C C C C C C C E E E . . . . . G G G G G I I I I
+I I I I I
A A A . . . . . C C C C C . . . . . E E E E E . . . . . . . . . . . .
+. I I I I I
3)
A A A A A . . . C C C . . . E E E E E . . . G G G G G . . . . . I I I
+I I I I I I I
A A A A A . . . . . . . C C C C C C C C . . . . . E E E E E . . . . .
+. . . . .
. . . . . . . C C C C C C C . . . . . . . . . . G G G G G G G G G . .
+. . .
A A A A A . . . C C C . . . . . E E E E E . . . . . . . . . . I I I I
+I I I I I I
A A A A A A A A A A . . . . . E E E E E E E E E E . . . . . G G G G G
+G G G G
A A A A A . . . C C C . . . . . E E E E E . . . . . . . . . . I I I I
+I I I I I
. . . . . . . C C C C C C C . . . . . . . . . . G G G G G G G G G G .
+. . . .
A A A A A . . . . . . . C C C C C C C . . . . . E E E E E . . . . . .
+. . . .
A A A A A . . . C C C . . . E E E E E . . . G G G G G . . . . . I I I
+I I I I I I
|