is there a way to install a new theme and show it only to the administrator?
Or what is the best way to change the theme without going offline?
Using Magento out-of-the-box you won't be able to do that.
Maybe you can set the new design just for one product, category or cms page if you need to check something but that change it would be public.
It is always safer to have a staging site which is a full copy of your online store. This will help you apply any changes and test different things on the staging site without influencing the live one.
OK for the stage copy, but there is a way to migrate the client/orders/invoices that will be done in the meanwhile the production site is working before go online with the new one?
theme must be separate from your core website, you install theme on staging, configure it, then migrate it to live shop, templates and css files.
theme package with all its templates must be in separate folder.
and also you must create child theme out of your main theme package to easily upgrade in future...