Every time it adds words from the word list, it places a symbol between them, and it doesn't try to add the words together without anything in them.
I have 4 words, but 7 total because three of them have capitalization variances.
1 symbol.
And between 2-4 numbers randomly in there.
For instance:
When I put that all in (with only "2" as the max number count), it generates ONLY 24 possibly passwords. Minimum 10 char, max 21. It didn't even put in any numbers, and all the potential passwords had 2 symbols in them.
Well, I found the error. It turns out, that after adding a symbol it would call the function with the algorithm with one less parameter than expected. Instead of throwing an error, powershell defaulted to 0..
Here is a fixed version with a DEBUG mode, which you can enable (will probably make you understand how the passphrases are generated), note that it will slow it down quite a bit as printing takes up quite some time for a computer.
Also added an improvement where if the word is already max length, it will no longer add anything to it (and then find out it's too long anyway).
Sorry about not seeing this mistake :/..
http://pastebin.com/wwuYHzSu