Here's a great table --
I'd begin by rolling d% and I'd read across the "Number of Buildings" row.
- If I rolled below 3, I'd say there's 1 tent that sells a lot of different stuff and keep rolling.
- If I roll above 70, I'd roll in the 51-70 column and add 1d10 to the result.
You can modify/tweak the occupations in Table 1d by assigning some lower chances for more specialized types of occupations.
- For example in the Tinker/Coppersmith row -- If you roll 10-20, include a Silversmith in addition to a Tinker and Coppersmith. 01-05, include a Goldsmith and the other types.
- For example in the Horse Trader row -- If you roll 10-20, include exotic animals like llamas and camels in the stable. If you roll 01-02, maybe he has a gryphon or pegasi.
- For Sharpener -- if you roll 10-20, there's also a Blacksmith, 01-05 add a Weaponsmith to the mix; 06-10 include an Armorer.
- etc. You get the idea...
You can get the sampler here.