We disturb the entries of the matrices by a relative error of size epsilon depending on either a discrete with values in {-1,1} or a continuous random variable with values in [-1..1].
i1 : needsPackage "RandomComplexes" o1 = RandomComplexes o1 : Package  | 
i2 : setRandomSeed "nice example 2";  | 
i3 : C=randomChainComplex({1,1,1},{2,2})
       3       5       3
o3 = ZZ  <-- ZZ  <-- ZZ
                      
     0       1       2
o3 : ChainComplex
 | 
i4 : C.dd
           3                              5
o4 = 0 : ZZ  <------------------------- ZZ  : 1
                | -14 -7  5 5   3   |
                | 8   13  1 -17 -21 |
                | -13 -15 1 18  21  |
           5                        3
     1 : ZZ  <------------------- ZZ  : 2
                | -11 5   -10 |
                | 26  -29 37  |
                | 19  -16 23  |
                | -41 -1  -22 |
                | 46  -16 38  |
o4 : ChainComplexMap
 | 
i5 : B=disturb(C,1e-4)
         3         5         3
o5 = RR    <-- RR    <-- RR
       53        53        53
                          
     0         1         2
o5 : ChainComplex
 | 
i6 : B.dd
             3                                                         5
o6 = 0 : RR    <-------------------------------------------------- RR    : 1
           53     | -13.9986 -6.9993  5.0005 5.0005   2.9997   |     53
                  | 8.0008   12.9987  1.0001 -17.0017 -20.9979 |
                  | -13.0013 -15.0015 1.0001 18.0018  20.9979  |
             5                                         3
     1 : RR    <---------------------------------- RR    : 2
           53     | -10.9989 4.9995   -10.001  |     53
                  | 26.0026  -29.0029 37.0037  |
                  | 18.9981  -16.0016 23.0023  |
                  | -40.9959 -1.0001  -21.9978 |
                  | 46.0046  -16.0016 37.9962  |
o6 : ChainComplexMap
 | 
i7 : B.dd^2
             3                                               3
o7 = 0 : RR    <---------------------------------------- RR    : 2
           53     | -.0307969    -.0030031 .00020458 |     53
                  | -4.26326e-14 .00020002 .148183   |
                  | -.0780078    .080208   -.239992  |
o7 : ChainComplexMap
 | 
i8 : B1=disturb(C,1e-4,Strategy => Continuous)
         3         5         3
o8 = RR    <-- RR    <-- RR
       53        53        53
                          
     0         1         2
o8 : ChainComplex
 | 
i9 : B1.dd^2
             3                                            3
o9 = 0 : RR    <------------------------------------- RR    : 2
           53     | -.0274814 .0279033  -.0248834 |     53
                  | -.0316963 -.0630671 .0213659  |
                  | .0211089  .0524756  -.0148725 |
o9 : ChainComplexMap
 | 
The result is only approximately a complex