# Hvordan bruke Python-modulen random

`random` -modulen tilbyr deg en rekke funksjoner for **å generere tilfeldige tall** i ulike formater, alt fra heltall til flytende tall til valg av elementer fra lister.

## Hva er Pythons random-modul, og hva kan den brukes til?

`random` random er et innebygd bibliotek som lar deg generere tilfeldige tall og utføre tilfeldighetsbaserte operasjoner i programmene dine. Den inneholder ulike funksjoner for **å generere pseudotilfeldige tall** som kan brukes i mange applikasjoner, fra simulering til spillutvikling og kryptografiske oppgaver.

En viktig egenskap ved tilfeldighetsmodulen er dens evne til å gi reproduserbare resultater. Ved å fastsette en startverdi eller et startpunkt kan prosessen med tilfeldig generering reproduseres. Dette er nyttig for testing, eksperimenter og simuleringer som krever konsistente tilfeldige data.

## Hva er funksjonene i random-modulen?

Python-modulen random inneholder ulike metoder for **å generere og behandle tilfeldige tall**. Tabellen nedenfor gir en oversikt over funksjonene og deres egenskaper:

<table>
  <thead>
    <tr>
      <th>Funksjonens navn</th>
      <th>Forklaring</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`seed(a=None, version=2)`</td>
      <td>Definerer startverdien (seed) for tilfeldig tallgeneratoren</td>
    </tr>
    <tr>
      <td>`getstate()`</td>
      <td>Returnerer den aktuelle tilstanden til tilfeldig tallgeneratoren som et objekt</td>
    </tr>
    <tr>
      <td>`setstate(state)`</td>
      <td>Tilbakestiller tilstanden til tilfeldig tallgeneratoren ved hjelp av et tilstandsobjekt</td>
    </tr>
    <tr>
      <td>`getrandbits(k)`</td>
      <td>Returnerer et heltall med k biter</td>
    </tr>
    <tr>
      <td>`randrange(start, stop, step)`</td>
      <td>Oppretter et tilfeldig heltall fra det angitte området</td>
    </tr>
    <tr>
      <td>`randint(a, b)`</td>
      <td>Returnerer et tilfeldig heltall i det angitte området</td>
    </tr>
    <tr>
      <td>`choice(seq)`</td>
      <td>Returnerer et tilfeldig element fra den angitte sekvensen</td>
    </tr>
    <tr>
      <td>`choices(population, weights=None, *, cum_weights=None, k=1)`</td>
      <td>Oppretter en liste med k tilfeldig utvalgte elementer fra populasjonen; valgfritt å spesifisere sannsynlighetene</td>
    </tr>
    <tr>
      <td>`sample(k, population)`</td>
      <td>Oppretter en liste med k tilfeldig valgte elementer fra populasjonen, uten duplikater</td>
    </tr>
    <tr>
      <td>`shuffle(x)`</td>
      <td>Blander elementene i en liste i tilfeldig rekkefølge</td>
    </tr>
    <tr>
      <td>`random()`</td>
      <td>Returnerer et tilfeldig flytende tall mellom 0 og 1</td>
    </tr>
    <tr>
      <td>`uniform(a, b)`</td>
      <td>Returnerer et tilfeldig flytende tall i det angitte området, inkludert grenseverdiene</td>
    </tr>
    <tr>
      <td>`triangular(low, high, mode)`</td>
      <td>Oppretter et tilfeldig flytende tall i det trekantede fordelingsområdet.</td>
    </tr>
    <tr>
      <td>`betavariate(alpha, beta)`</td>
      <td>Returnerer et tilfeldig flytende tall fra en betafordeling.</td>
    </tr>
    <tr>
      <td>`expovariate(lambd)`</td>
      <td>Returnerer et tilfeldig flytende tall fra en eksponentiell fordeling.</td>
    </tr>
    <tr>
      <td>`gammavariate(alpha, beta)`</td>
      <td>Oppretter et tilfeldig flytende tall fra en gammadistribusjon.</td>
    </tr>
    <tr>
      <td>`gauss(mu, sigma)`</td>
      <td>Returnerer et tilfeldig flytende tall fra en Gaussisk fordeling</td>
    </tr>
    <tr>
      <td>`lognormvariate(mu, sigma)`</td>
      <td>Oppretter et tilfeldig flytende tall fra en logaritmisk normalfordeling.</td>
    </tr>
    <tr>
      <td>`normalvariate(mu, sigma)`</td>
      <td>Returnerer et tilfeldig flytende tall fra en normalfordeling</td>
    </tr>
    <tr>
      <td>`vonmisesvariate(mu, kappa)`</td>
      <td>Returnerer et tilfeldig flytende tall med en von Mises-fordeling eller sirkulær normalfordeling</td>
    </tr>
    <tr>
      <td>`paretovariate(alpha)`</td>
      <td>Returnerer et tilfeldig flytende tall med en Pareto-fordeling.</td>
    </tr>
    <tr>
      <td>`weibullvariate(alpha, beta)`</td>
      <td>Returnerer et tilfeldig flytende tall med en Weibull-fordeling</td>
    </tr>
  </tbody>
</table>

## Hvordan velge elementer tilfeldig fra en liste

Hvis du vil velge flere tilfeldige elementer fra en liste, kan du bruke funksjonen `choices(seq, k=n)` fra Python-modulen random, der `n` er antall ønskede tilfeldige elementer.

```python
import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Randomly selecting an element from the list
random_elements = random.choices(my_list, k=3)
print("Randomly selected elements:", random_elements)
```

I dette tilfellet bruker vi funksjonen `choices()` til å velge tre tilfeldige elementer fra `my_list`. Resultatene returneres som en liste med tre tilfeldige elementer.

## Hvordan blande en liste

Funksjonen `shuffle()` ordner Python-listeelementer i tilfeldig rekkefølge.

```python
import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Shuffle the elements in the list
random.shuffle(my_list)
print("Shuffled list:", my_list) # Example Output: Shuffled list: ['Strawberry', 'Banana', 'Apple', 'Cherry', 'Orange']
```

Du bør huske på at `shuffle()` endrer selve listen og ikke returnerer en ny. Etter å ha brukt `shuffle()`, vil den opprinnelige listen være i tilfeldig rekkefølge.

## Hvordan angi en startverdi

Når du bruker `random.seed()` fra Python random-modulen til **å angi en spesifikk startverdi**, initialiserer den tilfeldig tallgeneratoren til å produsere tilfeldige tall ved hjelp av denne startverdien. Hvis du senere angir samme startverdi igjen, vil det derfor resultere i at identiske sekvenser av tilfeldige tall genereres i applikasjonen din.

```python
import random
# Setting the seed value to 42
random.seed(42)
# Generating random numbers
print(random.random())  # Example output: 0.6394267984578837
print(random.random())  # Example output: 0.025010755222666936
# Resetting the seed value to 42
random.seed(42)
# Generating random numbers again
print(random.random())  # Example output: 0.6394267984578837 (identical to the previous value)
print(random.random())  # Example output: 0.025010755222666936 (identical to the previous value)
```

Etter at startverdien er angitt, genererer og sender den ut tilfeldige tall. Hvis startverdien tilbakestilles til **samme verdi**, vil den samme sekvensen av tilfeldige tall genereres på nytt. I dette eksemplet er startverdien 42. Så lenge denne startverdien forblir konstant, kan de tilfeldige tallene replikeres konsekvent.


This is a markdown version of: [https://www.ionos.com/nb-no/digitalguide/nettsteder/webutvikling/python-random-modul/](https://www.ionos.com/nb-no/digitalguide/nettsteder/webutvikling/python-random-modul/) for AI/LLM consumption.