I think there is only one answer to this question. Let the user make their password! Everything else is programmer laziness and poor interaction design and customer friendliness (IMO).
Now I would see a few exceptions, namely if it is some kind of low-intensity intranet system that has only a few users who agree with this, or if it is a one-time account that people will not need to log in later.
In any case, you need to hash and salt your passwords, even if you create them yourself. All you need to add are some validation rules when you first introduce the user. This is probably even easier to do than a good password creation tool.
Password strength
Link to the message about 10 indicators of password strength
source share