Is there a way to refresh the Captacha value without having to reload the page? If so, how?
You'll need to use some ajax and create an endpoint, ergo refreshing just the captcha.
Fortunatly, once you have that in place actually creating a captcha is totally easy, there's a helper in the system but the function is also available via ee itself :
//create a captcha and return the HTML $captchaHtml = ee()->functions->create_captcha();