I can recommend you the Firefox extension Simple Tab Groups. You can create groups (e.g. personal, work). If you open tabs in a group and then change the group, the visible tabs will be replaced with these from the newly selected group. Therefore it's easy to don't mix up personal and work stuff.
I'm not sure though, if it also separates the tabs in different containers, so they don't share cookies etc. If you want to do that, Firefox Multi-Account-Containers would be a solution. This add-on isolates different groups, so you can sign in with different accounts on the same website.
This can also hide/show tabs as you use it (seems tailored for what you're looking for):
Hide and Show: Assume you use your browser for both Work and Personal tasks. When you come home at the end of the day, you don’t want to be thinking about “Work” anymore, but your browser is full of Work tabs. You can “Hide” your Work tabs and proceed with your Personal tasks. Then the next day, when you are back at work, you can “Hide” your Personal tabs and “Show” your Work tabs.
[More info @https://support.mozilla.org/en-US/kb/containers#w_what-you-can-do-with-multi-account-containers]
If you want even more separation, Firefox profiles could be the solution (like Riduidel mentioned). In this case, I recommend you to create a (Windows) shortcut for each profile:
C:\path\to\firefox.exe -P 'Profilename (e.g. work)'
You can set a custom icon and if you double click it, a new Firefox window with the specified profile will open.
Note, that with different profiles, most of the Firefox settings and all extension are separated as well.