diff --git a/package-lock.json b/package-lock.json
index 7302959f2d44c4fbe8554e390c00e8e06cdcce02..5144b8a3102a30c140f76a1906983189f8f8cfc7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -55,7 +55,6 @@
         "tailwindcss": "^3.0.15",
         "tslib": "^2.0.0",
         "typescript": "^4.0.0",
-        "uuid": "^8.3.2",
         "vite": "^3.0.0",
         "zx": "^7.0.7"
       }
@@ -6483,15 +6482,6 @@
       "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
       "dev": true
     },
-    "node_modules/uuid": {
-      "version": "8.3.2",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
-      "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
-      "dev": true,
-      "bin": {
-        "uuid": "dist/bin/uuid"
-      }
-    },
     "node_modules/vite": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.0.tgz",
@@ -11556,12 +11546,6 @@
       "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
       "dev": true
     },
-    "uuid": {
-      "version": "8.3.2",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
-      "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
-      "dev": true
-    },
     "vite": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.0.tgz",
diff --git a/package.json b/package.json
index 5573290e11f3b0c4b9b873c4ed9b4d7c4b255308..1301cc807e0a8a9fd87d775bb0faa37e7ef52126 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,6 @@
     "tailwindcss": "^3.0.15",
     "tslib": "^2.0.0",
     "typescript": "^4.0.0",
-    "uuid": "^8.3.2",
     "vite": "^3.0.0",
     "zx": "^7.0.7"
   },
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index baef5ca8616e54e3d291194376370c536dcce830..a670a1461223bac4779f863c4eef2c1fbfcadb9c 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -12,7 +12,6 @@
   import type { Writable } from "svelte/store"
   import { writable } from "svelte/store"
   import { Modals, closeModal } from "svelte-modals"
-  import { v4 as uuidv4 } from "uuid"
 
   import { browser } from "$app/environment"
   import { page } from "$app/stores"
@@ -301,7 +300,7 @@
 
     const lawCalculation = requestedCalculationByName.law
     if (lawCalculation !== undefined && $webSocketOpenByName.law) {
-      const token = uuidv4()
+      const token = crypto.randomUUID()
       newCalculationByName.law = { running: true, token }
       let situation: SituationWithAxes
       if (lawCalculation.situationIndex === undefined) {
@@ -333,7 +332,7 @@
       $billName !== undefined &&
       $webSocketOpenByName.bill
     ) {
-      const token = uuidv4()
+      const token = crypto.randomUUID()
       newCalculationByName.bill = { running: true, token }
       let situation: SituationWithAxes
       if (billCalculation.situationIndex === undefined) {
@@ -368,7 +367,7 @@
       Object.keys($parametricReform).length > 0 &&
       $webSocketOpenByName.amendment
     ) {
-      const token = uuidv4()
+      const token = crypto.randomUUID()
       newCalculationByName.amendment = { running: true, token }
       let situation: SituationWithAxes
       if (amendmentCalculation.situationIndex === undefined) {