What is the easiest way to have a material randomize the Image textures it uses? I have 100 book cover textures and I'd like to condense them into one material and have it randomly assign the textures to the books. I tried the random output found in the Object Info node but this only recognizes two of the textures. Any ideas?
As long as all the books are separate objects, we can use the Random output of the Object Info node.

That gives us a random value (per object) ranging from 0 to 1 (black to white):



All we need to do then is tell it to use different materials for different value ranges. I'm sure there are many ways to do this, but here's the first I could think of:

We can add two math nodes with the operations on Greater Than and Less Than, setting the bottom socket values to encapsulate a certain range (e.g: between 0.1 and 0.3) and plugging the Random output into the top sockets. Then multiply the two math nodes and you'll have a mask showing white on the books where the random value is between that range:



Then we can connect that mask to the Fac of a MixRGB node, and thus the first socket of the mix node would be the original colour, and the second socket would be whatever colour/texture you want to show in the value range.

Since you'll be using that same node set-up over and over again for each texture, it's a good place to turn it into a node group:





And thus by chaining a few of these groups together, you can easily randomise the colours/textures of objects with that material: