Generative AI for Synthetic Data Generation: Methods, Challenges and the Future