>the word "seeds" seems strange to me<

To seed is to provide a starting point from which a series will grow.

>what is the point of modulus in all this

To limit the value that rand() returns between certain values. rand() will return a value between 0 and RAND_MAX. Normally you wouldn't want this entire range so you can use the modulus operator to obtain the remainder

rand returns - 0,1,2,3,4,5,...

rand%3 returns - 0,1,2,0,1,2,...

So rand%3 will produce values between 0->2 inclusive.

rand returns - 0,1,2,3,4,5,6

rand%4 returns - 0,1,2,3,0,1,2,3

So rand%4 will produce values between 0->3 inclusive.

rand%n will produce values between 0->(n-1) inclusive.