A seed is why the text stops moving, and how it is built
A generator has no answer to "why this text?" unless it can reproduce it, so the arithmetic is seeded rather than random. What you type in the seed box is folded into a 32-bit number with FNV-1a - any string at all becomes a number - and that number drives mulberry32, a small generator with a full period of 2^32 that behaves identically in every browser and in Node. The same seed and the same settings therefore produce the same text on every machine, which is what makes the seeded case testable word for word rather than "something came out".
Math.random is deliberately not used here, and the reason is the opposite of the UUID generator's: there, a predictable sequence would be a weakness, and here predictability is the whole feature. An empty seed box is a first-class choice rather than a missing value - it means "use the clock", which is what makes the button beside the form work - and the seed that was used is printed with the text so that any text can be frozen by typing the number back in.