Improviser

(n.) One who improvises.