There is, actually, even another way that is not 'really' random, but can be just as good and even easier depending on how you use it.
Have a counter that rapidly counts in a loop from 1 to 6 (using hypertriggers),
and since it's extremely hard for a human player to 'hyper-time' their actions, just pick whatever number the counter's at when they roll the dice. The number picked should be unpredictable.
However, if you want 2 dice, it's kinda tricky using this method, since if you have two counters counting the same amount, they will probably count in sync with each other, possibly meaning that you always roll a double

.
One way to get around it is to have a counter going to 36, covering all the possibilities of 2 dice rolls, but then each cycle will take 3 seconds to complete, even with hypers.
You get a similar problem with the critter method: the critters tend to move slowly and stop often, so you can't pick 2 numbers in a row quickly, or you'll get the same one.
With switches, the extra states (the combinations remaining after you assign all six numbers once) should lead to a re-randomisation, rather than just arbitrarily picking a number to assign to it. The way you have it currently, the numbers 5 and 6 will come up less often than the others.
Which method you choose depends on how fast you need it to work and how the dice are rolled.