def METHOD_NAME(self, settings, rnd):
    if settings.overworld == "dungeondive":
        self.entrance_mapping = {"d%d" % (n): "d%d" % (n) for n in range(9)}
    if settings.randomstartlocation and settings.entranceshuffle == "none":
        start_location = start_locations[rnd.randrange(len(start_locations))]
        if start_location != "start_house":
            self.entrance_mapping[start_location] = "start_house"
            self.entrance_mapping["start_house"] = start_location
    entrances = self.getEntrancePool(settings)
    for entrance in entrances.copy():
        self.entrance_mapping[entrance] = entrances.pop(rnd.randrange(len(entrances)))
    # Shuffle connectors among themselves
    entrances = self.getEntrancePool(settings, connectorsOnly=True)
    for entrance in entrances.copy():
        self.entrance_mapping[entrance] = entrances.pop(rnd.randrange(len(entrances)))
    if settings.boss != "default":
        values = list(range(9))
        if settings.heartcontainers:
            # Color dungeon boss does not drop a heart container so we cannot shuffle him when we
            # have heart container shuffling
            values.remove(8)
        self.boss_mapping = []
        for n in range(8 if settings.heartcontainers else 9):
            value = rnd.choice(values)
            self.boss_mapping.append(value)
            if value in (3, 6) or settings.boss == "shuffle":
                values.remove(value)
        if settings.heartcontainers:
            self.boss_mapping += [8]
    if settings.miniboss != "default":
        values = [name for name in self.miniboss_mapping.values()]
        for key in self.miniboss_mapping.keys():
            self.miniboss_mapping[key] = rnd.choice(values)
            if settings.miniboss == 'shuffle':
                values.remove(self.miniboss_mapping[key])
    if settings.goal == 'random':
        self.goal = rnd.randint(-1, 8)
    elif settings.goal == 'open':
        self.goal = -1
    elif settings.goal in {"seashells", "bingo", "bingo-full"}:
        self.goal = settings.goal
    elif "-" in settings.goal:
        a, b = settings.goal.split("-")
        if a == "open":
            a = -1
        self.goal = rnd.randint(int(a), int(b))
    else:
        self.goal = int(settings.goal)
    if self.goal in {"bingo", "bingo-full"}:
        self.bingo_goals = bingo.randomizeGoals(rnd, settings)
    self.multichest = rnd.choices(MULTI_CHEST_OPTIONS, MULTI_CHEST_WEIGHTS)[0]