Nah, I think the bias towards odd is down to the add at the end, the add was to stop the last bits constantly being 0, I would've needed to use something a bit more flexible there but since the other code is fine under MIT License I'll just go with that and put and end to this rng stuff, the inspiration for this code came from the Xn+1 thing I saw in a video recently, was trying to implement that in code and make use of the almost endless branching, seems like I failed there however, I'll take a look at that BMP code you pointed me too though. Honestly I think these image format libraries over complicate things though, all they need to do is read/write the format, whether the raw image data follows the expected format is none of their concern, that's for a wrapper library to take care of when it takes in an RGBA array or RGBA function.