JavaScriptsFun

Tagesorakel

Ein Spruch, eine Glückszahl und eine Farbe für den Tag — jeden Tag neu, aber innerhalb eines Tages immer dieselbe.

Ein Orakel für den Tag: ein Spruch, eine Glückszahl, eine Farbe und ein kleiner Rat. Das Besondere daran ist nicht der Inhalt, sondern eine technische Eigenschaft — der Text ist zwar gewürfelt, aber er bleibt den ganzen Tag über derselbe. Ladet die Seite zehnmal neu, und ihr bekommt zehnmal dasselbe Orakel. Erst morgen ist es ein anderes.

Das ist keine Kleinigkeit, sondern der Unterschied zwischen einem Orakel und einem Zufallsgenerator. Ein Spruch, der sich bei jedem Klick ändert, ist offensichtlich beliebig. Einer, der einen Tag lang steht, fühlt sich an wie eine Aussage. Möglich wird das durch einen Zufallsgenerator, der aus dem Datum berechnet wird statt frei zu würfeln — wie das geht, steht unten in der Erklärung, und es ist der interessanteste Teil dieser Seite.

Wählt euer Sternzeichen, dann bekommt jedes Zeichen sein eigenes Orakel; mit „ohne Sternzeichen" gilt eines für alle. Ihr könnt auch in die kommenden Tage schauen — probiert es aus und schaut morgen wieder vorbei, ob es stimmt.

Zur Ehrlichkeit gehört der Hinweis, den man bei solchen Texten selten liest: Das hier ist ein Zufallsgenerator und nichts weiter. Sprüche dieser Art wirken deshalb so treffend, weil sie so allgemein gehalten sind, dass fast jeder sich darin wiederfindet — ein Effekt, den die Psychologie nach dem Zirkusdirektor Barnum benannt hat. Nehmt es als das, was es ist: ein netter Satz zum Tagesbeginn.

Verwandtes im Archiv: Zitat des Tages und Witze des Tages arbeiten mit demselben Datumstrick, Magisches Orakel würfelt dagegen bei jedem Klick neu, und Sternzeichen ermitteln sagt euch, welches eures ist.

Fun Baujahr 2026 läuft in deinem Browser

Der Text bleibt den ganzen Tag über gleich — er wird aus dem Datum berechnet, nicht frei gewürfelt.

Script von kostenlose-javascripts.de

So funktioniert das Script

Der Kern dieser Seite ist ein Zufall, der keiner ist: Aus derselben Eingabe entsteht immer dieselbe Zahlenfolge. Solche Generatoren stecken in jedem Spiel mit erzeugten Welten und in jeder Simulation, die wiederholbar sein soll.

function saat(text) {
  let wert = 2166136261;
  for (let i = 0; i < text.length; i++) {
    wert = wert ^ text.charCodeAt(i);
    wert = Math.imul(wert, 16777619);
  }
  return wert >>> 0;
}

Zuerst wird aus dem Text „2026-08-30|Waage" eine einzige Zahl gemacht. Das Verfahren heißt FNV-Hash und ist denkbar einfach: Für jedes Zeichen wird der bisherige Wert mit dem Zeichencode verrechnet und dann mit einer großen Primzahl multipliziert. Das Ergebnis springt bei der kleinsten Änderung der Eingabe völlig anders aus — genau das ist gewollt, denn sonst bekämen benachbarte Tage ähnliche Orakel.

^ ist das bitweise Exklusiv-Oder, Math.imul eine Multiplikation, die wie in anderen Sprachen mit 32 Bit rechnet und überzählige Stellen abschneidet. Das abschließende >>> 0 macht aus dem Ergebnis eine Zahl ohne Vorzeichen.

function generator(startwert) {
  let zustand = startwert;
  return function () {
    zustand = zustand ^ (zustand << 13);
    zustand = zustand ^ (zustand >>> 17);
    zustand = zustand ^ (zustand << 5);
    zustand = zustand >>> 0;
    return zustand / 4294967296;
  };
}

Das ist ein Xorshift-Generator, einer der kürzesten brauchbaren Zufallsgeneratoren überhaupt. Er verschiebt seinen Zustand dreimal um verschiedene Weiten und verrechnet ihn jedes Mal mit sich selbst. Heraus kommt eine Zahlenfolge, die zufällig aussieht, aber vollständig durch den Startwert bestimmt ist. Geteilt durch 232 ergibt sich ein Wert zwischen 0 und 1 — genau wie bei Math.random, nur eben vorhersagbar.

Beachtet, dass die Funktion eine Funktion zurückgibt. Diese behält Zugriff auf die Variable zustand, obwohl generator längst beendet ist — ein Abschluss, im Englischen closure. So bekommt jeder Aufruf von generator seine eigene, unabhängige Zahlenfolge.

const wuerfeln = generator(saat(datumWert + "|" + zeichen));
const ziehe = function (liste) {
  return liste[Math.floor(wuerfeln() * liste.length)];
};

Ab hier sieht der Code aus wie bei jedem anderen Generator dieser Sammlung — nur dass wuerfeln an die Stelle von Math.random tritt. Das ist der ganze Unterschied zwischen „bei jedem Klick neu" und „einen Tag lang gleich". Beachtet, dass die Reihenfolge der Ziehungen festliegen muss: Würde man eine Ziehung dazwischenschieben, verschöbe sich die ganze Folge und alle Orakel wären andere.

new Date(datumWert + "T12:00:00")

Für die Anzeige des Wochentags wird das Datum auf die Mittagszeit gesetzt statt auf Mitternacht. Das ist eine erprobte Vorsichtsmaßnahme: Bei Mitternacht kann eine Zeitzonenverschiebung den Tag um eins verrutschen lassen, mittags niemals.

Zum Anpassen: Für ein wöchentliches Orakel nehmt ihr statt des Tagesdatums die Kalenderwoche als Saat. Und wenn jeder Besucher sein persönliches Orakel bekommen soll, nehmt zusätzlich den Namen mit in die Saat — dann ist es für ihn jeden Tag stabil und trotzdem ein anderes als für alle übrigen.

Script für die eigene Homepage

Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.

Mehr aus der Kategorie Fun