Copak VBS, tohle zvládal namíchat BASIC na IBM-5150 s MS-DOSem 1.0 a jednou 160 KB disketou v roce 1981, když se tenhle počítač ještě nejmenoval PC:
Kód: Vybrat vše
10 DEFINT A-Z
20 DIM k$(999, 3)
30 PRINT "Mixer (C)2018 FARAON pro pc-help.cz"
40 PRINT "Sdileno pod licenci GNU GPL v3 nebo vyssi, viz gnu.org"
100 REM nacteni paklu
110 ON ERROR GOTO 510
120 OPEN "karty.txt" FOR INPUT AS #1
130 FOR k = 0 TO 999
140 FOR r = 0 TO 3
150 LINE INPUT #1, k$(k, r)
160 IF EOF(1) THEN GOTO 200
170 NEXT r, k
180 PRINT "Maximalni pocet!"
190 k = k - 1
200 CLOSE #1
300 REM Knuth micha karty
310 RANDOMIZE TIMER
320 FOR i = 0 TO k
330 n = INT(RND(1) * (k + 1))
340 FOR r = 0 TO 3
350 t$ = k$(i, r)
360 k$(i, r) = k$(n, r)
370 k$(n, r) = t$
380 NEXT r, i
400 REM ulozeni paklu
410 ON ERROR GOTO 530
420 OPEN "mix.txt" FOR OUTPUT AS #1
430 FOR i = 0 TO k
440 FOR r = 0 TO 3
450 PRINT #1, k$(i, r)
460 NEXT r, i
470 CLOSE #1
480 GOTO 540
500 REM ukonceni
510 PRINT "Nelze nacist karty!"
520 GOTO 540
530 PRINT "Nelze ulozit karty!"
540 PRINT "Program skoncil."
550 SYSTEM
Funguje to v GW-Basicu a QBasicu, takže by to měl schroustat i QB64 určený pro novější Wyndejsi

Program načte ze souboru
karty.txt čtveřice řádků, každou čtveřici bere jako jednu kartu, ty zamíchá a vypíše do souboru
mix.txt. Pořadí řádků ve čteřicích zůstává neměnné. Takhle jsi to myslel?
S ohledem na vlastnosti těch šestnáctibitových vykopávek je počet řádků omezen na 1000, délku řetězce zvládaly do 255 znaků, a celková možná velikost souboru se rovná maximální velikosti jimi využitelné paměti, což bylo něco málo přes 60 Kibibajtů. Na hraní a řízení robota svařujícího v NASA rakety to tehdy stačilo.