A custom ROM is a fully standalone version of the OS, including the kernel (which makes everything run), apps, services yet everything you need to operate the device but except it’s customized by someone else.

What the “customized” part mean?

We know that Android is an open source OS that means every developer can free to take Stock ROM, strip them of garbage, modify them, add things, optimize them, and pretty much do whatever their imagination and skills allow.