Looks good but I think this idiom used in hangman:
pos = (double) random() / (RAND_MAX + 1.0) * (double) Dict_size;
Can be replaced with:
pos = arc4random_uniform(Dict_size);
so long as Dict_size <= UINT32_MAX, which should always be the case.
A similar idiom is used by monop (compare to mille/roll.c).
- todd
