You could, within the bookshelf bp, add a spline along the length of the shelf, then (with the book geometry as a separate BP, that sets the material at random from an array of materials in the construction script - therefore on spawn each book will be random) at this point you just spawn that BookBP along the spline with potential variables for distance between each book etc and maybe simulate physics at the end so they drop and fall into place.