Improviser

n.
  1. One who improvises.