Even when farming souls you need a troop to eventually deal some damage, unless youre playing low difficulty where you can just outlast the enemy team with simple skull attacks. And Keeper fills that role very well. It gives you damage and its trait gives you souls…
As for the suggested troop list that could be turned into soul generators:
How about Peasant gave you some souls when he dies. I mean peasants are really just cannon fodder arent they? You could use him as a meat shield in the first slot while youre charging up abilities on your bottom troops and when he bites the dust you get few souls for his brave sacrifice.
Lamia is another instance of never used troop. The ability doesnt do much damage unless youre lucky to hit exactly the right target and even then, youre probably better off just attacking yourself. Her ability could be slightly tweaked that she gives you some extra souls if the enemy kills a teammate as a result of her ability.
You dont really need to make too many of these changes… but some alternative to valkyrie would be very welcome.