This is something I've wanted for a long time when developing and constantly switching themes either via the theme selector or the URL. So, I've updated the code from here: https://github.com/johntron/moodle-theme-selector-block - to be fully M2.9 operational and added the ability to switch with the 'allowthemechangeonurl' core theme setting. The latter removes the choice of 'base' and 'bootstrapbase' themes as guest logins cannot choose them.
You can get the 'beta' test server code from here: https://github.com/gjb2048/moodle-block_theme_selector, use the 'Download ZIP' button and install as a block as normal. You don't need anything else like jQuery as the block now gets from core via the fully rewritten AMD module.
If I get good feedback, then I'll release in the plugins DB. If you find this useful, then please mark this post as such.