Try using switch_theme().
<?php switch_theme( $stylesheet ) ?>
I have personally never used it but it sounds like what you want. You just need to pass the stylesheet name you are using.
Here is a very basic demo I put together. You would basically but the following code, where ever its needed in both themes.
<form action="" method="post">
<input type="radio" id="theme1" name="theme" value="theme1">
<label for="theme1">Theme1</label><br>
<input type="radio" id="theme2" name="theme" value="theme2">
<label for="theme2">Theme2</label><br>
<input type="submit" value="Submit">
</form>
<?php
$radioVal = $_POST["theme"];
if($radioVal == "theme1"){
switch_theme('gemcore-ui');
header("Refresh:0");
}
else if ($radioVal == "theme2"){
switch_theme('testtheme');
}
?>
I tested this and it worked well but I needed to refresh the page afterwards, so I added the header(“Refresh:0”). Also you can add as many radio options as needed.