How does this work with an existing website? Or do we create a new website via a host like wordpress?
As Jon says, CiviCRM is installed on top of WordPress, Drupal/Backdrop or Joomla, so if your main website uses one of those you have the option to add Civi to it.
Alternatively, you can leave the main website as is and install CiviCRM and one of the CMS's on a separate site. Then for example, your main website has the write up of your event and includes a link for booking that goes to the Civi site to do the event booking and payment.
CiviCRM started life as a Drupal module, and even though it grew out of that to become "CMS agnostic", early on there was a decision not to try and include all the things a CMS does. So it relies on the CMS for a few things, most importantly for user authentication.
Here's some advice on choosing your CMS to wrap around CiviCRM:
From a conceptual point of view, I prefer to think of CiviCRM as an independent 'service' that has integration modules with different CMS to actually be able to access it. In fact, although you'll need a primary CMS to 'contain' CiviCRM, you can also access CiviCRM (using the REST interface) from multiple CMSs.
CiviCRM can be installed as a WordPress plugin, a Drupal/Backdrop module, or a Joomla extension.