fixed the same value always generated for 256-divisor chars

Actually, it looks like I haven't fixed it all in my previous pull request. I fixed the infinite loop, but it was just running out of data limit, and generating the same 0-byte return string every time. So I think the right way is just to explicitly test for ``maxrb`` being greater than zero, and do modulo bias check only when it is.

Test and code change again, hopefully the final one this time.