&gt; echo $((RANDOM%firstnames_len))
That's neat.  The first time I tried it though I got the same number twice in a row:
m300-01:/srv$ echo $((RANDOM%100))
88
m300-01:/srv$ echo $((RANDOM%100))
88
m300-01:/srv$ echo $((RANDOM%100))
68

Probably just a fluke but I'd be interested to test it in rapid succession (eg. a loop) to see if it's more prone to do that than the awk random number generator.

To be clear, you're not suggesting the pre/post increments work on busybox/ash correct - they don't appear to unless I'm doing it wrong:

-ash: arithmetic syntax error