I am implementing some code to the new random8() function the library provides.

I am implementing some code to the new random8() function the library provides. I would like to set the seed, but the library only provides support for the random16() call. Why is this? Or perhaps does anyone have a workaround/solution they are willing to share. Will there be unnecessary memory waste due to using the 16 bit function, using a seed, and using a number range the would be more suitable for 8 bit?

The underlying pseudorandom number generator is 16 bits. Random8() is a convenience function that uses the 16-but PRNG.

Also, just to mix things up nicely, I put this at the top of my loop() function:

random16_add_entropy( random() );

That calls the Arduino library 32-bit PRNG and adds that randomness to the FastLED 16-bit PRNG each time. I find that this lets me draw thousands of numbers from random8 (or random16) with good distribution and few repeats.

random8 / random16 are much faster than Arduino’s “random( )”, but without adding external entropy, you’ll get repeats after a few thousand calls.