In a nutshell
A GAN trains two neural networks against each other. The generator turns random noise into fake samples; the discriminator tries to tell those fakes apart from real training data. Each round the discriminator gets better at catching fakes, which forces the generator to make them more convincing — until the fakes are so realistic the discriminator can only guess (about 50/50), meaning the generator has learned to reproduce the real data.