Może istnieje - warto poszukać. Ale trzeba też odpowiedzieć sobie na istotne pytania:
- do czego to jest potrzebne?
- jakie będą konsekwencje, jeśli wygenerowane sekwencje wartości pseudolosowych w pewnym momencie zaczną się różnić?
- jakie konkretnie języki/platformy/architektury są potrzebne? (bo na pewno wszystkie)
Bo jeśli mowa o Javie i C#, to obstawiam, że można byłoby porównać rozmiary typów liczb (np. czy i tu i tu są używane 32-bitowe, a może 64-bitowe) i jeśli byłyby takie same, to może implementacja tego samego algorytmu rozwiązałaby problem?
Rzecz w tym, że liczby pseudolosowe mogą być generowane przez różne generatory (algorytmy) liczb pseudolosowych (PRNG, od ang. Pseudo-Random Number Generator). Zazwyczaj w każdym języku jest dostępny >>jakiś<< PRNG, lecz wątpię, aby były to te same warianty tego samego algorytmu. Najprościej się o tym przekonać generując sekwencję, powiedzmy, dziesięciu liczb pseudolosowych, w dwóch różnych językach, inicjalizując PRNG tą samą wartością.
Zresztą, o czym tu mówić - w takim JavaScript w ogóle nie ma możliwości ustawiania ziarna losowego. (No, chyba że w ostatnich latach coś się zmieniło, a ja to przegapiłem.)
Też miałem kiedyś taki problem - chciałem uzyskać tą samą sekwencję liczb pseudolosowych w różnych językach. Nie było to łatwe. Powód? PRNGi działają na zasadzie wykonywania różnych operacji na wartościach - operacji arytmetycznych, operacji na bitach (przesunięcia, działania logiczne). Implementacja takiego np. Mersenne Twistera bazuje chyba na liczbach o określonym rozmiarze (nie pamiętam już - 32 bity, czy 64 bity?). Nie zawsze takie właśnie liczby są dostępne we WSZYSTKICH językach. Moje próby "rozbiły" się o różnice, jakie pojawiały się w operacjach wykonywanych podczas implementacji wspomnianego MT.
(Zresztą problem może być jeszcze trudniejszy: głowy sobie za to uciąć nie dam, ale coś mi się kojarzy, że niektóre języki mogą generować inny kod na architekturach 32-bitowych, a inny na 64-bitowych. No to powodzenia z takimi implementacjami PRNG...)
Problem ostatecznie rozwiązałem pewnym obejściem: generując w jednym z języków sekwencję liczb pseudolosowych, która była wczytywana w drugim języku. Mało eleganckie, ale działało. (A że nie o to chodziło w projekcie, to pomysł ostatecznie porzuciłem.)
Może dałoby się to rozwiązać, gdybym opracował lepszą implementację MT. A może potrzebny byłby inny algorytm PRNG? W każdym razie temat jest interesujący.
Dodam, że najtrudniej byłoby w praktyce sprawdzić, czy dwie implementacje tego samego algorytmu działają identycznie. Każdy PRNG cechuje się pewnym cyklem - tzn. po pewnym czasie liczby pseudolosowe zaczynają się powtarzać. Im dłuższy cykl, tym, lepszy PRNG. Życzę powodzenia w sprawdzaniu, czy powtarza się CAŁA sekwencja wygenerowanych liczb pseudolosowych... Bo w zasadzie wystarczy jedna różnica, która kiedyś-tam się pojawi, aby obydwie implementacje nie były sobie równoważne... A cykle są dość długie (krótkie byłyby mało przydatne).
Dodam jeszcze, że swego czasu w takim Pythonie pojawił się ciekawy problem. Otóż implementacja PRNG została w pewnym momencie zmieniona. Tzn. w wersji X Pythona był stosowany inny PRNG, niż w wersji Y. I człowiek musiał implementować własny algorytm, żeby wyniki były potarzalne... (W zasadzie to nie trzeba było implementować, wystarczyło znaleźć gotową implementację w sieci.)