I think the best approach should be to use Pega Survey. But as that is a separate license and may not be possible you may use the below approach.
- First create a delegated Data Type where the admin may choose the control for each Question. The Data Type might have two columns named QuestionID(Key) and ControlType .You may add another column to specify comma separated values for radio or drop down.
- Now, in the UI, create a separate section for the Answer option. There you should have separate controls. For example have 3 different cells one with Radio, one with Drop Down and the other with text box. They should all have visibility condition based on admin selected control type. If radio or drop down, the values to be displayed should be populated by delimiting comma separate String mentioned above.