def METHOD_NAME(debate, submitter_type, user, probability=1.0, discarded=False, confirmed=False):
    """Adds feedback to a debate.
    Specifically, adds feedback from both teams on the chair, and from every
    adjudicator on every other adjudicator.
    ``debate`` is the Debate to which feedback should be added.
    ``submitter_type`` is a valid value of AdjudicatorFeedback.submitter_type.
    ``user`` is a User object.
    ``probability``, a float between 0.0 and 1.0, is the probability with which
        feedback is generated.
    ``discarded`` and ``confirmed`` are whether the feedback should be
        discarded or confirmed, respectively."""
    if discarded and confirmed:
        raise ValueError("Feedback can't be both discarded and confirmed!")
    if debate.adjudicators.chair is None:
        raise ValueError("This debate ({}) doesn't have a chair.".format(debate.matchup))
    if debate.round.tournament.pref('feedback_from_teams') == 'all-adjs':
        sources_and_subjects = [(team, adj) for team in debate.teams for adj in debate.adjudicators.all()]
    else:
        sources_and_subjects = [(team, debate.adjudicators.chair) for team in debate.teams]
    sources_and_subjects.extend(itertools.permutations(
        (adj for adj, position in debate.adjudicators.with_debateadj_types()), 2))
    fbs = list()
    for source, adj in sources_and_subjects:
        if random.random() > probability:
            logger.info(" - Skipping %s on %s", source, adj)
            continue
        fb = fm.AdjudicatorFeedback(submitter_type=submitter_type)
        if submitter_type == fm.AdjudicatorFeedback.SUBMITTER_TABROOM:
            fb.submitter = user
        fb.adjudicator = adj
        if isinstance(source, Adjudicator):
            fb.source_adjudicator = DebateAdjudicator.objects.get(
                debate=debate, adjudicator=source)
        elif isinstance(source, Team):
            fb.source_team = DebateTeam.objects.get(
                debate=debate, team=source)
        else:
            raise TypeError("source must be an Adjudicator or a Team")
        score = float(random.randrange(1, 6))
        fb.score = score
        fb.discarded = discarded
        fb.confirmed = confirmed
        fb.save()
        for question in debate.round.tournament.adj_feedback_questions:
            if fb.source_team and not question.from_team:
                continue
            if fb.source_adjudicator and not question.from_adj:
                continue
            if question.answer_type_class == fm.AdjudicatorFeedbackBooleanAnswer:
                answer = random.choice([None, True, False])
                if answer is None:
                    continue
            elif question.answer_type_class == fm.AdjudicatorFeedbackIntegerAnswer:
                min_value = int(question.min_value) or 0
                max_value = int(question.max_value) or 10
                answer = random.randrange(min_value, max_value+1)
            elif question.answer_type_class == fm.AdjudicatorFeedbackFloatAnswer:
                min_value = question.min_value or 0
                max_value = question.max_value or 10
                answer = random.uniform(min_value, max_value)
            elif question.answer_type_class == fm.AdjudicatorFeedbackStringAnswer:
                if question.answer_type == fm.AdjudicatorFeedbackQuestion.ANSWER_TYPE_LONGTEXT:
                    answer = random.choice(COMMENTS[score])
                elif question.answer_type == fm.AdjudicatorFeedbackQuestion.ANSWER_TYPE_SINGLE_SELECT:
                    answer = random.choice(question.choices)
                else:
                    answer = random.choice(WORDS[score])
            elif question.answer_type_class == fm.AdjudicatorFeedbackManyAnswer:
                answer = random.sample(question.choices, random.randint(0, len(question.choices_for_field)))
            else:
                raise TypeError("Answer type class not recognized: " + question.answer_type_class.__name__)
            question.answer_type_class(question=question, feedback=fb, answer=answer).save()
        name = source.name if isinstance(source, Adjudicator) else source.short_name
        logger.info("[%s] %s on %s: %s", debate.round.tournament.slug, name, adj, score)
        fbs.append(fb)
    return fbs