diff --git a/locale/de-DE.commands.json b/locale/de-DE.commands.json
index f5db414bf20c85ddec364df7d0e364c70d8eba60..b258925bf6033d9a1ae00e2c53b302bc7e593749 100644
--- a/locale/de-DE.commands.json
+++ b/locale/de-DE.commands.json
@@ -92,6 +92,14 @@
     "maybe": {
         "commands": ["vielleicht", "vllt", "eventuell", "evtl"]
     },
+    "moddingRunAssignment":
+    {
+        "commands": [
+            "Auslosen",
+            "ZiehungAusführen"
+        ],
+        "info": "Führt die Auslosung der Wichtel aus."
+    },
     "moddingStatus":
     {
         "commands": [
diff --git a/locale/de-DE.texts.json b/locale/de-DE.texts.json
index 0401117030d05a5ec3bfacb84b6f0e8012e0ab10..b654f9c2061e3a42875d2dce30a05df4e67a6444 100644
--- a/locale/de-DE.texts.json
+++ b/locale/de-DE.texts.json
@@ -1,4 +1,6 @@
 {
+    "assignmentError": "Die Auslosung ist fehlgeschlagen.",
+    "assignmentSuccessful": "Die Auslosung war erfolgreich.",
     "becameMember": "Herzlichen Glückwunsch, du hast dich erfolgreich zum Wichteln „{var.currentEventName}“ registriert.\nToll!\n\nWas nun? Nun wird gewartet, bis der Anmeldeschluss kommt. Dann wird gelost und du bekommst hier alle Informationen zu deinem Wichtel.\n\nDu hast einen Fehler gemacht oder etwas vergessen? Kein Problem, mit „ändern“ kannst du deine Angaben bis zum Anmeldeschluss jederzeit überarbeiten. (Achte allerdings darauf, dass alle Änderungen bis Registrierungsschluss abgeschlossen sein müssen, sonst bist du nicht registriert!)\n\nFrohes Hibbeln bis zum Auslosetag!",
     "changedInformation": "Angaben erfolgreich geändert. Du kannst jederzeit mittels „ändern“ die Angaben erneut anpassen.",
     "commandInfo": "`{command.name}`: {command.info}",
diff --git a/scripts/utility/localisation.ts b/scripts/utility/localisation.ts
index 6a5c812e0442ca062b82e58d27bce9064ad1f662..746a2168495d5dc27cb0d186f3347f935c304911 100644
--- a/scripts/utility/localisation.ts
+++ b/scripts/utility/localisation.ts
@@ -27,6 +27,7 @@ interface Commands
     informationBothAnalogueAndDigital: CommandInfo;
     informationDigital: CommandInfo;
     maybe: CommandInfo;
+    moddingRunAssignment: CommandInfo;
     moddingStatus: CommandInfo;
     no: CommandInfo;
     registration: CommandInfo;
@@ -39,6 +40,8 @@ interface Commands
 // TODO: Documentation
 interface Texts
 {
+    assignmentError: TokenString;
+    assignmentSuccessful: TokenString;
     becameMember: TokenString;
     changedInformation: TokenString;
     commandInfo: TokenString;
diff --git a/scripts/wichtelbot/message/handlingDefinition.ts b/scripts/wichtelbot/message/handlingDefinition.ts
index 76b857e67bdbc3b743be6f9b5f5a2ae372aab509..401bd82a2277c417cac5b8479bb9c40781bee509 100644
--- a/scripts/wichtelbot/message/handlingDefinition.ts
+++ b/scripts/wichtelbot/message/handlingDefinition.ts
@@ -1,5 +1,6 @@
 import { CommandHandlerFunction, StateCommandHandlerFunction } from './handlingTools/handlerFunctions';
 import Localisation, { CommandInfo } from '../../utility/localisation';
+import { AssignmentModule } from './modules/assignmentModule';
 import { ComponentBuilder } from './handlingTools/componentBuilder';
 import Config from '../../utility/config';
 import GeneralModule from './modules/generalModule';
@@ -51,17 +52,23 @@ export default class HandlingDefinition
     protected generalModule: GeneralModule;
     protected informationModule: InformationModule;
     protected moderationModule: ModerationModule;
+    protected assignmentModule: AssignmentModule;
 
     private get maxShortMessageLength (): number
     {
         return Math.floor(Config.main.maxMessageLength / 2);
     }
 
-    constructor (generalModule: GeneralModule, informationModule: InformationModule, moderationModule: ModerationModule)
-    {
+    constructor (
+        generalModule: GeneralModule,
+        informationModule: InformationModule,
+        moderationModule: ModerationModule,
+        assignmentModule: AssignmentModule
+    ) {
         this.generalModule = generalModule;
         this.informationModule = informationModule;
         this.moderationModule = moderationModule;
+        this.assignmentModule = assignmentModule;
     }
 
     public stateCommands: StateCommandDefinition[] = [
@@ -490,6 +497,22 @@ export default class HandlingDefinition
     ];
 
     public moderatorCommands: CommandDefinition[] = [
+        {
+            commandInfo: Localisation.commands.moddingRunAssignment,
+            handlerFunction: async (message: Message): Promise<void> =>
+            {
+                const asssignmentResult = this.assignmentModule.runAssignment();
+
+                if (asssignmentResult)
+                {
+                    await this.generalModule.reply(message, Localisation.texts.assignmentSuccessful);
+                }
+                else
+                {
+                    await this.generalModule.reply(message, Localisation.texts.assignmentError);
+                }
+            }
+        },
         {
             commandInfo: Localisation.commands.moddingStatus,
             handlerFunction: async (message: Message): Promise<void> => this.moderationModule.sendStatus(message)
diff --git a/scripts/wichtelbot/message/messageHandler.ts b/scripts/wichtelbot/message/messageHandler.ts
index 41574479aa0e1a2ee0e4f9c95ed048d99c96c38f..fccb3af32a9e4afc30766cbd5eaa5b118b857640 100644
--- a/scripts/wichtelbot/message/messageHandler.ts
+++ b/scripts/wichtelbot/message/messageHandler.ts
@@ -1,5 +1,6 @@
 import { ChannelType, Message, State } from '../endpoint/definitions';
 import Localisation, { CommandInfo } from '../../utility/localisation';
+import { AssignmentModule } from './modules/assignmentModule';
 import { CommandHandlerFunction } from './handlingTools/handlerFunctions';
 import Config from '../../utility/config';
 import Database from '../database/database';
@@ -31,6 +32,7 @@ export default class MessageHandler
     protected generalModule: GeneralModule;
     protected informationModule: InformationModule;
     protected moderationModule: ModerationModule;
+    protected assignmentModule: AssignmentModule;
 
     // In private messages:
     protected stateCommands = new StateCommandMap();
@@ -59,8 +61,14 @@ export default class MessageHandler
         this.generalModule = new GeneralModule(database);
         this.informationModule = new InformationModule(database);
         this.moderationModule = new ModerationModule(database);
+        this.assignmentModule = new AssignmentModule(database);
 
-        this.handlingDefinition = new HandlingDefinition(this.generalModule, this.informationModule, this.moderationModule);
+        this.handlingDefinition = new HandlingDefinition(
+            this.generalModule,
+            this.informationModule,
+            this.moderationModule,
+            this.assignmentModule
+        );
 
         this.applyHandlingDefinition();
     }