אירועים כאוטיים ניתנים להמרה לאות דיגיטלי באמצעים שונים. חברת סיליקון גרפיקס צילמה מנורות לבה כדי לייצר מהתמונות מספרים אקראיים. תאגיד RAND פיתחו מכשיר אלקטרוני המדמה גלגל רולטה כדי לייצר מספרים אקראיים. רעיונות אחרים הם לצלם בועות אוויר באקווריום או שמיים ביום מעונן ולהמיר את התמונות למחרוזת אקראית. קומודור 64 מחשב אישי שהיה פופולרי בשנות השמונים הכיל מחולל חומרה שמוקם בכרטיס הקול והשתמש בהמרת אות אנלוגי לאות דיגיטלי ליצירת מספרים אקראיים. היות שהתופעות הללו אינן נקיות מהטיות סטטיסטיות, מכשירים מתוחכמים יותר עשויים לנצל כמה מקורות ולבצע סינון של אותות בעלי תבנית קבועה או אותות המושפעים מתנאים חיצוניים כלשהם.
בכל מקרה, התוצאה של התקנים פיזיים כאלה אינה נקייה לחלוטין מהטיות סטטיסטיות. על פי רוב פלט מחולל כזה אינו אקראי לגמרי וסובל מהשפעות גורמים חיצוניים כמו מתח חשמלי, מגנטיות, טמפרטורה או התיישנות. עקב כך אפשר בניתוח הסתברותי של הפלט לנחש מהי הסיבית הבאה ברצף בסיכויים גבוהים מחמישים אחוז בשיעור מסוים. על כן מקובל בדרך כלל לבצע תיקונים, אילו נעשים לאחר ייצור המספרים בחומרה המיוחדת לכך או באמצעות תוכנה.
מקורות טבעיים.
להלן מספר מקורות טבעיים המאפשרים יצירת אקראיות אמיתית:
מרבית המכשירים המבוססים על התופעות המנויות בדרך כלל יקרים לייצור ותחזוקה, נוטים להיות אטיים מאוד ותוצאתם לא תמיד נקייה מנטייה סטטיסטית בשל רגישותם הרבה לתנאים סביבתיים ומשתנים חיצוניים. כיוון שכך, נוהגים למצוא פשרה סבירה בין אקראיות מושלמת הנובעת מחומרה ייעודית מחד ואקראיות אלגוריתמית (חישובית) מאידך, על ידי ניצול אנטרופיה זולה וזמינה. מרבית אפליקציות האבטחה מנצלות אנטרופיה טבעית שאפשר להפיק מהמערכת עצמה; אפליקציות מסוימות דורשות מהמשתמש לספק מחרוזת ארוכה של קואורדינטות עכבר או הקשות מקלדת אקראיות. אלגוריתמים אחרים דוגמת Yarrow משתמשים בטכניקה של איסוף נתונים אקראיים מגוונים לתוך "מאגר" (pool), שם הם מעובדים באמצעות פרימיטיבים קריפטוגרפיים כמו אלגוריתם הצפנה או פונקציית גיבוב, לפני שמופק פלט אקראי. בכך מושג שיפור באקראיות ללא צורך בחומרה יקרה. טכניקה זו פגיעה להתקפות קורלציה, היות שחלק מהנתונים הללו קל לניחוש. לא קשה למשל לנחש את נתוני שעון מערכת ששימשו לאתחול המחולל, אם ידוע טווח הזמן המשוער שבו התבצעה קריאה למחולל.
ספריית Cryptolib המכילה אוסף שגרות ספרייה קריפטוגרפיות בשפת C++‎, מיישמת אלגוריתם הנקרא TrueRand ליצירת מספרים אקראיים המבוסס על רעיון המתנד. מרבית המעבדים המודרניים מכילים שני מתנדי גביש מובנים, אחד עבור שעון זמן אמת ואחד עבור שעון מעבד ראשי. אלגוריתם TrueRand מנצל עובדה זו, האלגוריתם משתמש בשרות (service) מערכת שעוצר את שעון זמן האמת. תת-שגרה אחת קובעת עצירה למשך קליק שעון אחד (1/60 של שנייה) בעוד שתת-שגרה אחרת נכנסת ללולאת המתנה. מאחר שהעצירה לא נמשכת בדיוק קליק שעון אחד, הסיבית הנמוכה ביותר של מונה הלולאה בין עצירה להפעלה של השעון השני, תהיה אקראית. בסביבה מרובת משימות אלגוריתם כזה עלול להיתקל בהשפעות לא אקראיות במקרה שמערכת ההפעלה תעצור את הלולאה הפנימית כדי לבצע מטלות אחרות.
מחולל פסידו אקראי.
מחולל פסידו אקראי (PRNG) הוא אלגוריתם המסוגל לייצר כמות נכבדה של מספרים עם מאפייני אקראיות טובים באיכותם, אך לא אקראיים באמת ועל כן מכונים "מדומים". אחת השיטות הנפוצות להפקת מספרים פסידו אקראיים היא אלגוריתם linear congruential generator (בקיצור LCG) שמשתמש בנוסחת הנסיגה: formula_1. מחולל זה מייצר רצף מספרים פסידו אקראיים שגודלם אינו עולה על גודלו של formula_2 ומחזוריותו אינה גבוהה מ-formula_3. בשל פשטותו המחולל נמצא בשימוש נרחב כיום.
השיטה הראשונה והפשוטה ביותר ליצירת מספרים אקראיים (שיטת עט ונייר הנקראת "אמצע הריבוע") הומצאה ב-1946 על ידי ג'ון פון ניומן. מעלים מספר בריבוע ונוטלים רק את הספרות האמצעיות כמספר אקראי וחוזר חלילה. השיטה אמנם קלה לביצוע אך איכותה ירודה. מרבית שפות התכנות כוללות פונקציות או שגרות ספריה התומכות ביצירת מספרים אקראיים כמו formula_4 בשפת C (שמממשת ואריאציה של LCG). לעיתים הפונקציה מחזירה שבר עשרוני בהתפלגות אחידה בטווח formula_5 ולעיתים מספר שלם. מקובל שהפונקציה האקראית כוללת פונקציית עזר נוספת, המאפשרת למשתמש לאתחל את המחולל ממקור אקראי כלשהו במחשב, כמו מספר מילי השניות שחלפו מאז הפעלתו או נתוני מערכת (חסרי חשיבות) אחרים.
פונקציות ספריה סטנדרטיות לרוב בעלות מאפיינים סטטיסטיים גרועים וחלקן בעלי מחזוריות כה קצרה שאחרי כמה עשרות אלפי מספרים המחולל מתחיל לחזור על עצמו בהעתק מדויק. עבור יישומים פשוטים כמו משחקי מחשב הם מספקים אקראיות סבירה. כשמדובר במשחקי הימורים בסכומים גבוהים, בקריפטוגרפיה או בניתוחים סטטיסטיים מדעיים, לא מומלץ להשתמש בהם.
מהיבט של תורת האינפורמציה, צ'ייטין וקולמוגורוב הוכיחו שרצף סיביות לא יקרא אקראי "אמיתי" אם יכול היה להיווצר על ידי תוכנת מחשב הקצרה ממנו. מחוללים פסידו אקראיים נפוצים אינם עומדים בדרישה זו. פלט המחולל בסיביות עולה לאין שיעור על אורכה של תוכנת המחשב המיישמת אותו. ישנן כמה הגדרות פורמליות לאקראיות, העדר תבנית או דפוס קבוע כלשהו ברצף האקראי או רמת אנטרופיה שלו (ראה דונלד קנות').
מעצם ההגדרה בהינתן האלגוריתם והמצב ההתחלתי, ניתן לשחזר במדויק את הרצף האקראי שהפיק המחולל. אפילו בהינתן מידע חלקי של מצב פנימי כלשהו של המחולל, עשוי הדבר להקל על ניחוש חלק או מלוא הרצף שהמחולל ייצר. בנוסף, היות שהמחולל מתחיל ממצב התחלתי בגודל סופי כלשהו וכמות הזיכרון אינה בלתי מוגבלת, בשלב כלשהו יחזור הרצף על עצמו שוב. אמנם המחוללים הנפוצים כיום מכילים מחזוריות עצומה, בסדר גודל של מיליוני סיביות. קיימת שאלה פתוחה האם ניתן להבחין בהבדל בין פלט מחולל כזה לבין רצף אקראי אמיתי, ללא ידיעת המצב ההתחלתי והאלגוריתם. קריפטוגרפיה מסתמכת על ההשערה שלא ניתן לזהות הבדל כזה תוך שימוש בעוצמת חישוב מוגבלת.
כיוון שהמחוללים הפסידו אקראיים הרגילים אינם מתאימים לצורך קריפטוגרפיה. לצד השיטות הרגילות, ברוב מערכות ההפעלה קיימות שגרות ספרייה יותר איכותיות ליצירת מספרים פסידו אקראיים המתאימות למטרות קריפטוגרפיות, כמו CryptGenRandom של מיקרוסופט או dev/random של לינוקס.
יישומים מעשיים.
אחד היישומים הראשונים ליצירת מספרים אקראיים היה כדורי פינג פונג ממוספרים שנופחו באוויר ונשלפו בדרך כלשהי ממכל ערבוב. טכניקה זו מגיעה לתוצאות טובות והיא בשימוש עד היום בעיקר בהגרלות לוטו, בשיטה זו נעשה שימוש כבר על ידי הסינים כמאתיים שנה לפני הספירה במשחק הימורים שנקרא קנו. חסרונה שהיא אטית מאוד ואינה מתאימה לתהליכים ממוכנים.
בעבר פרסמו חברות שונות ברשת האינטרנט רשימות של מספרים אקראיים שנלקחו ממקורות שונים. ב-1995 פרסם תאגיד RAND ספר המכיל רשימה של מיליון מספרים אקראיים שנוצרו באמצעות סימולציה אלקטרונית של גלגל רולטה שחובר למכונת ניקוב. הרשימה הוכנה לאחר סינון ובדיקה קפדניים והייתה הראשונה מסוגה. עקב פרסומה ברבים רשימה זו לא מתאימה לצורך מפתחות הצפנה או גרעין התחלתי למחולל פסידו אקראי קריפטוגרפי, עיקר התועלת ברשימה כזו היה הדמיה לצורך מחקר מדעי.
השימושים העיקריים כיום במחוללים אקראיים הוא במשחקי הימורים למיניהם, במיוחד משחקי הימורים אלקטרוניים, דגימות סטטיסטיות, הדמיות מחשב ומשחקי מחשב, סימולציות מדעיות וקריפטוגרפיה. ככלל תכונת האי-צפיות (אנטרופיה גבוהה) חשובה בעיקר באפליקציות אבטחה, בהן מחולל מבוסס חומרה עדיף באופן כללי על פני מחולל פסידו אקראי, היכן שהדבר אפשרי. למשל השולח והמקבל יכולים לשחזר רצף אקראי מתוך גרעין התחלתי סודי המשותף להם ולהשתמש בו כמפתח הצפנה. צופני זרם פועלים בדיוק בדרך זו.
מחוללי מספרים פסידו אקראיים מסייעים בפיתוח סימולציות בשיטת מונטה קרלו. יתרונם בכך שהם מאפשרים לשחזר את הרצף האקראי שוב ושוב אם משתמשים באותו גרעין התחלתי.
מספרים אקראיים נפוצים בתכנות, בניגוד לקריפטוגרפיה הדורשת אקראיות באיכות גבוהה מאוד, למרבית היישומים דרושה בדרך כלל אקראיות בינונית. יישומים המציגים "טיפ יומי" אקראי, משחקי מחשב המדמים פעולות של יריב או יישומים המבצעים מיון וחיפוש במסד נתונים, לא זקוקים לאקראיות באיכות גבוהה. מעבר לכך, נגני מדיה המאפשרים השמעת מוזיקה בסדר אקראי, דורשים בדרך כלל ששיר לא יחזור על עצמו פעמיים ברצף, דרישה שאינה הכרחית בהגדרה הבסיסית של אקראיות. יתרה מזו, מערכת אקראית אמיתית תאפשר מעצם ההגדרה חזרה של אלמנטים מסוימים מספר לא גדול של פעמים. אם ידוע שהמחולל אינו מייצר מספר אלמנטים עוקבים, מהווה הדבר פגם בסיסי.
הכנות ובדיקות סטטיסטיות.
אפשר לייצר מספרים אקראיים באמצעות התקן המנצל תופעה פיזית ותיקון הטיות אם ישנן באמצעים שונים. היתרון הוא שהפלט במקרה זה ייקרא אקראי "אמיתי". אולם משיקולים מעשיים (כלכליים) הנטייה כיום היא להסתפק בתהליך חישובי דטרמיניסטי המייצר רצף מספרים ארוך שנראה על פניו כאקראי הנגזר ממקור אקראי אמיתי קצר, אותו מכנים פסידו-אקראי. אלגוריתם פסידו אקראי ידוע שנבדק היטב בעזרת מבחנים סטטיסטיים קפדניים מהווה חלופה זולה וסבירה. ארגוני תקינה בינלאומיים מפיצים תקנים שונים לבדיקת טיב מחוללים אקראיים ופסידו אקראיים.