The game doesn't really give them anything, the way it works is this:
- The battle has a list of units with fixed racial templates, class, loyalty and alignment. There are battles where all units from the list are assigned, some where you always get several and the rest are picked randomly from the rest of the list and some battles where all are random. For example, those castle fights with reinforcements start with a very long list, some are fixed, some are randomly picked from the starter list and when the game has to spawn another unit it picks one from the reinforcement list.
- When they spawn the game assigns them a name from a list and a small amount of stat points at random on top of those their racial template comes with. Also, it checks their skills and assigns them gear according to their autoequip setting (same as your autoequip options on party screen) with some randomness, it won't always go for the best option if it can use multiple weapon skills.
So, what's random there is which units spawn but they're preset. The default lizardman template is 32str and 30dex, the warrior template has 36/30 and the rogue template is 32/34. so the best outcome for you is finding a battle where a dex lizarman spawns and run it a few times until he rolls 3-4 extra points in dex, but if the battle doesn't have that template on the list it will never happen. And ignore which weapons they have equipped, it doesn't matter.
When I get to adjusting battle data I'll also tweak which templates are on the list so you at least aren't getting warriors with a mage template. Some have requested to be able to recruit humanoids like lizards or fairies in certain towns and I'll do that if possible, you will be able to get the desired template easier that way and give them custom names.