Gen Z and Millennials are the most charitable age groups – both giving an average of more than £500 a year.