Runners collect thousands for charities