Zu 1): Nach langem Nachdenken bin ich zur Überzeugung gekommen, dass
dieser Code wahrscheinlich sehr schlau ist. Ich hätte nie daran gedacht,
dass es nicht gleich viele Zufallszahlen kongruent zu 0,1,2,3,4,5 gibt,
wenn RAND_MAX kein Vielfaches von 6 ist. Aber wenn der
Zufallszahlengenerator so gut ist, wie die halt normalerweise so sind,
dann ist dass auch nur Zuckerguss auf einem Sandkuchen. Allerdings gibst
Du einen int zurück, wo ein uint16 erwartet wird und ein uint8 reichen
würde. Das ist unordentlich.
Zu 2): Das kann ich beantworten: Die Variable wurde wegoptimiert, weil
sie nur beschrieben und nie gelesen wurde.
Aber warum verwendest Du überhaupt rand() aus der stdlib? Hast Du
Zugriff auf die Numerical Recipes? Da gibt's doch sicherlich einen
10-Zeiler, der gut genug ist für einen Würfel. Ich nehme mal an, dass
sich dann auch Dein Speicherverbrauch besser in den Griff bekommen
lässt.