To protect privacy, the wallet picks a random target for the change output (#24494), inside a set range that is fixed for very small payments, otherwise random between CHANGE_LOWER and min(2 × payment, CHANGE_UPPER). This function has no unit test at all. You could widen the range, or make it not random anymore, and every test would still pass. This PR adds a unit test to the function GenerateChangeTarget
<details> <summary>Mutations tested against the added unit test</summary>
- Boundary change
- Dropped change fee
- Wrong
randrange - Skewed distribution
- Halved upper cap
</details>